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.
- package/dist/abis/trailsHydrate.d.ts +5 -42
- package/dist/abis/trailsHydrate.d.ts.map +1 -1
- package/dist/abis/trailsRouter.d.ts +1 -1
- package/dist/abis/trailsRouter.d.ts.map +1 -1
- package/dist/{widget/analytics → analytics/hooks}/useWidgetAnalytics.d.ts +2 -4
- package/dist/analytics/hooks/useWidgetAnalytics.d.ts.map +1 -0
- package/dist/analytics.d.ts.map +1 -1
- package/dist/chainSwitch.d.ts.map +1 -1
- package/dist/chains-C1NhDLF_.js +4 -0
- package/dist/chains-CcoarGia.js +658 -0
- package/dist/chains.d.ts +0 -1
- package/dist/chains.d.ts.map +1 -1
- package/dist/committedIntentStore.d.ts +5 -0
- package/dist/committedIntentStore.d.ts.map +1 -0
- package/dist/config.d.ts +2 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/constants.d.ts +2 -1
- package/dist/constants.d.ts.map +1 -1
- package/dist/error.d.ts +73 -4
- package/dist/error.d.ts.map +1 -1
- package/dist/hooks/useAddressWalletIcon.d.ts.map +1 -0
- package/dist/hooks/useAmountUsd.d.ts.map +1 -0
- package/dist/hooks/useBalanceVisible.d.ts.map +1 -0
- package/dist/hooks/useChainFilter.d.ts.map +1 -0
- package/dist/{widget/hooks → hooks}/useCheckout.d.ts +15 -15
- package/dist/hooks/useCheckout.d.ts.map +1 -0
- package/dist/hooks/useClickTracking.d.ts.map +1 -0
- package/dist/{widget/hooks → hooks}/useCombinedHistory.d.ts +3 -2
- package/dist/hooks/useCombinedHistory.d.ts.map +1 -0
- package/dist/hooks/useConnector.d.ts.map +1 -0
- package/dist/{widget/hooks → hooks}/useCustomTokenSearch.d.ts +1 -1
- package/dist/hooks/useCustomTokenSearch.d.ts.map +1 -0
- package/dist/hooks/useDebounce.d.ts.map +1 -0
- package/dist/{widget/hooks → hooks}/useDebugScreens.d.ts +2 -2
- package/dist/hooks/useDebugScreens.d.ts.map +1 -0
- package/dist/{widget/hooks → hooks}/useDefaultDestinationToken.d.ts +1 -1
- package/dist/hooks/useDefaultDestinationToken.d.ts.map +1 -0
- package/dist/{widget/hooks → hooks}/useDefaultOriginToken.d.ts +1 -1
- package/dist/hooks/useDefaultOriginToken.d.ts.map +1 -0
- package/dist/hooks/useDepositMonitor.d.ts.map +1 -0
- package/dist/{widget/hooks → hooks}/useDestinationSelectedToken.d.ts +2 -2
- package/dist/hooks/useDestinationSelectedToken.d.ts.map +1 -0
- package/dist/hooks/useDisplayCurrencyPreference.d.ts.map +1 -0
- package/dist/{widget/hooks → hooks}/useEarnPool.d.ts +1 -1
- package/dist/hooks/useEarnPool.d.ts.map +1 -0
- package/dist/hooks/useEffectiveFundBalance.d.ts +28 -0
- package/dist/hooks/useEffectiveFundBalance.d.ts.map +1 -0
- package/dist/hooks/useExecutingIntentsCount.d.ts.map +1 -0
- package/dist/{widget/hooks → hooks}/useExternalFundingReceiptSync.d.ts +1 -1
- package/dist/hooks/useExternalFundingReceiptSync.d.ts.map +1 -0
- package/dist/{widget/hooks → hooks}/useFiatOnRampCurrencies.d.ts +1 -1
- package/dist/hooks/useFiatOnRampCurrencies.d.ts.map +1 -0
- package/dist/hooks/useFiatSelectedCurrency.d.ts.map +1 -0
- package/dist/hooks/useGetIntent.d.ts.map +1 -0
- package/dist/{widget/hooks → hooks}/useIntentReceiptBalances.d.ts +1 -1
- package/dist/hooks/useIntentReceiptBalances.d.ts.map +1 -0
- package/dist/{widget/hooks → hooks}/useIntentTransactionHistory.d.ts +2 -1
- package/dist/hooks/useIntentTransactionHistory.d.ts.map +1 -0
- package/dist/hooks/useIsMobile.d.ts.map +1 -0
- package/dist/hooks/useIsSequenceWallet.d.ts.map +1 -0
- package/dist/hooks/useLocalePreference.d.ts.map +1 -0
- package/dist/hooks/useMeldTransactionHistory.d.ts.map +1 -0
- package/dist/hooks/useMeldTransactionStatus.d.ts.map +1 -0
- package/dist/hooks/useOnRampCountryDefaults.d.ts.map +1 -0
- package/dist/{widget/hooks → hooks}/useOnRampPaymentMethods.d.ts +2 -2
- package/dist/hooks/useOnRampPaymentMethods.d.ts.map +1 -0
- package/dist/{widget/hooks → hooks}/useOnRampProviderWidget.d.ts +1 -1
- package/dist/hooks/useOnRampProviderWidget.d.ts.map +1 -0
- package/dist/{widget/hooks → hooks}/useOnRampQuote.d.ts +3 -3
- package/dist/hooks/useOnRampQuote.d.ts.map +1 -0
- package/dist/{widget/hooks → hooks}/useOnRampTransactionStatus.d.ts +1 -1
- package/dist/hooks/useOnRampTransactionStatus.d.ts.map +1 -0
- package/dist/{widget/hooks → hooks}/useOriginSelectedToken.d.ts +1 -1
- package/dist/hooks/useOriginSelectedToken.d.ts.map +1 -0
- package/dist/hooks/usePayMessage.d.ts.map +1 -0
- package/dist/hooks/usePriceImpactWarning.d.ts.map +1 -0
- package/dist/hooks/useQuote.d.ts +439 -0
- package/dist/hooks/useQuote.d.ts.map +1 -0
- package/dist/{widget/hooks → hooks}/useRecentTokens.d.ts +1 -1
- package/dist/hooks/useRecentTokens.d.ts.map +1 -0
- package/dist/hooks/useRecipients.d.ts.map +1 -0
- package/dist/hooks/useSelectedFeeOption.d.ts.map +1 -0
- package/dist/{widget/hooks → hooks}/useSelectedFundMethod.d.ts +11 -1
- package/dist/hooks/useSelectedFundMethod.d.ts.map +1 -0
- package/dist/hooks/useSelectedRecipient.d.ts.map +1 -0
- package/dist/{widget/hooks → hooks}/useSendForm.d.ts +6 -11
- package/dist/hooks/useSendForm.d.ts.map +1 -0
- package/dist/hooks/useSwapAmount.d.ts.map +1 -0
- package/dist/{widget/hooks → hooks}/useSwapState.d.ts +1 -1
- package/dist/hooks/useSwapState.d.ts.map +1 -0
- package/dist/hooks/useTargetAmount.d.ts.map +1 -0
- package/dist/hooks/useTheme.d.ts.map +1 -0
- package/dist/{widget/hooks → hooks}/useTokenList.d.ts +2 -2
- package/dist/hooks/useTokenList.d.ts.map +1 -0
- package/dist/{widget/hooks → hooks}/useTrailsSendTransaction.d.ts +1 -1
- package/dist/hooks/useTrailsSendTransaction.d.ts.map +1 -0
- package/dist/{widget/hooks → hooks}/useViewManager.d.ts +1 -1
- package/dist/hooks/useViewManager.d.ts.map +1 -0
- package/dist/hooks/useWalletConnectUri.d.ts +19 -0
- package/dist/hooks/useWalletConnectUri.d.ts.map +1 -0
- package/dist/hooks/useWalletConnectionContext.d.ts.map +1 -0
- package/dist/{widget/hooks → hooks}/useWidgetProps.d.ts +1 -1
- package/dist/hooks/useWidgetProps.d.ts.map +1 -0
- package/dist/hydrate/builder.d.ts +131 -0
- package/dist/hydrate/builder.d.ts.map +1 -0
- package/dist/hydrate/constants.d.ts +13 -0
- package/dist/hydrate/constants.d.ts.map +1 -0
- package/dist/hydrate/encodeExecute.d.ts +73 -0
- package/dist/hydrate/encodeExecute.d.ts.map +1 -0
- package/dist/hydrate/index.d.ts +6 -0
- package/dist/hydrate/index.d.ts.map +1 -0
- package/dist/hydrate/index.js +11 -0
- package/dist/hydrate/payload.d.ts +38 -0
- package/dist/hydrate/payload.d.ts.map +1 -0
- package/dist/hydrate/selectors.d.ts +28 -0
- package/dist/hydrate/selectors.d.ts.map +1 -0
- package/dist/hydrate/types.d.ts +19 -0
- package/dist/hydrate/types.d.ts.map +1 -0
- package/dist/hydrate/utils.d.ts +8 -0
- package/dist/hydrate/utils.d.ts.map +1 -0
- package/dist/hydrate-Cr9eaeDK.js +654 -0
- package/dist/index.d.ts +19 -13
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +157 -662
- package/dist/intentConfigStore.d.ts +8 -0
- package/dist/intentConfigStore.d.ts.map +1 -0
- package/dist/intentProtocolApi.d.ts +11 -0
- package/dist/intentProtocolApi.d.ts.map +1 -0
- package/dist/intentProtocolEncoding.d.ts +25 -0
- package/dist/intentProtocolEncoding.d.ts.map +1 -0
- package/dist/intentProtocolResolver.d.ts +28 -0
- package/dist/intentProtocolResolver.d.ts.map +1 -0
- package/dist/intentReceiptPoller.d.ts.map +1 -1
- package/dist/intentValidation.d.ts +5 -0
- package/dist/intentValidation.d.ts.map +1 -0
- package/dist/intents.d.ts.map +1 -1
- package/dist/keymachine/index.d.ts +20 -0
- package/dist/keymachine/index.d.ts.map +1 -1
- package/dist/mutations.d.ts.map +1 -1
- package/dist/offlineRecovery.d.ts +24 -0
- package/dist/offlineRecovery.d.ts.map +1 -0
- package/dist/onramp/MeshConnectFlow.d.ts +9 -0
- package/dist/onramp/MeshConnectFlow.d.ts.map +1 -1
- package/dist/onramp/MeshConnectIframe.d.ts +9 -0
- package/dist/onramp/MeshConnectIframe.d.ts.map +1 -1
- package/dist/onramp/TrailsOnRampProvider.d.ts.map +1 -1
- package/dist/onramp/mesh/components/MeshExchangeConfirmation.d.ts +10 -0
- package/dist/onramp/mesh/components/MeshExchangeConfirmation.d.ts.map +1 -0
- package/dist/onramp/mesh/components/MeshExchangeIcon.d.ts +13 -0
- package/dist/onramp/mesh/components/MeshExchangeIcon.d.ts.map +1 -0
- package/dist/{widget → onramp/mesh}/components/MeshExchangeSelection.d.ts +1 -0
- package/dist/onramp/mesh/components/MeshExchangeSelection.d.ts.map +1 -0
- package/dist/onramp/mesh/components/MeshSessionOptions.d.ts +15 -0
- package/dist/onramp/mesh/components/MeshSessionOptions.d.ts.map +1 -0
- package/dist/onramp/mesh/hooks/useMeshAccessTokens.d.ts +9 -0
- package/dist/onramp/mesh/hooks/useMeshAccessTokens.d.ts.map +1 -0
- package/dist/onramp/mesh/hooks/useMeshFundingSelection.d.ts +11 -0
- package/dist/onramp/mesh/hooks/useMeshFundingSelection.d.ts.map +1 -0
- package/dist/onramp/mesh/hooks/useMeshOnrampFlow.d.ts +71 -0
- package/dist/onramp/mesh/hooks/useMeshOnrampFlow.d.ts.map +1 -0
- package/dist/onramp/mesh/hooks/useMeshOnrampSessionState.d.ts +32 -0
- package/dist/onramp/mesh/hooks/useMeshOnrampSessionState.d.ts.map +1 -0
- package/dist/onramp/mesh/hooks/useMeshSelectedTokenBalance.d.ts +19 -0
- package/dist/onramp/mesh/hooks/useMeshSelectedTokenBalance.d.ts.map +1 -0
- package/dist/onramp/mesh/hooks/useMeshSessionAccountBalance.d.ts +15 -0
- package/dist/onramp/mesh/hooks/useMeshSessionAccountBalance.d.ts.map +1 -0
- package/dist/onramp/mesh/hooks/useMeshSessionStorage.d.ts +7 -0
- package/dist/onramp/mesh/hooks/useMeshSessionStorage.d.ts.map +1 -0
- package/dist/onramp/meshSessionStorage.d.ts +13 -0
- package/dist/onramp/meshSessionStorage.d.ts.map +1 -0
- package/dist/onramp/meshconnect.d.ts +6 -4
- package/dist/onramp/meshconnect.d.ts.map +1 -1
- package/dist/onramp/trailsOnramp.d.ts +8 -0
- package/dist/onramp/trailsOnramp.d.ts.map +1 -1
- package/dist/onrampClient.d.ts.map +1 -1
- package/dist/prepareSend.d.ts +3 -2
- package/dist/prepareSend.d.ts.map +1 -1
- package/dist/query/intentProtocol.queries.d.ts +32 -0
- package/dist/query/intentProtocol.queries.d.ts.map +1 -0
- package/dist/recover.d.ts +70 -24
- package/dist/recover.d.ts.map +1 -1
- package/dist/src-4HYDQv2T.js +48798 -0
- package/dist/transactionIntent/deposits/depositOrchestrator.d.ts +2 -3
- package/dist/transactionIntent/deposits/depositOrchestrator.d.ts.map +1 -1
- package/dist/transactionIntent/deposits/gaslessDeposit.d.ts +2 -3
- package/dist/transactionIntent/deposits/gaslessDeposit.d.ts.map +1 -1
- package/dist/transactionIntent/deposits/standardDeposit.d.ts +2 -5
- package/dist/transactionIntent/deposits/standardDeposit.d.ts.map +1 -1
- package/dist/transactionIntent/handlers/intentHandler.d.ts +4 -4
- package/dist/transactionIntent/handlers/intentHandler.d.ts.map +1 -1
- package/dist/transactionIntent/quote/quoteHelpers.d.ts +2 -2
- package/dist/transactionIntent/quote/quoteHelpers.d.ts.map +1 -1
- package/dist/transactionIntent/types.d.ts +3 -3
- package/dist/transactionIntent/types.d.ts.map +1 -1
- package/dist/transactions.d.ts +1 -0
- package/dist/transactions.d.ts.map +1 -1
- package/dist/umd/trails.min.js +1370 -410
- package/dist/utils/localStorageGc.d.ts +22 -0
- package/dist/utils/localStorageGc.d.ts.map +1 -0
- package/dist/walletUtils.d.ts.map +1 -1
- package/dist/widget/components/AccountIntentTransactionHistory.d.ts.map +1 -1
- package/dist/widget/components/ClassicSwap.d.ts.map +1 -1
- package/dist/widget/components/ConnectedWallets.d.ts +1 -1
- package/dist/widget/components/ConnectedWallets.d.ts.map +1 -1
- package/dist/widget/components/Earn.d.ts +2 -6
- package/dist/widget/components/Earn.d.ts.map +1 -1
- package/dist/widget/components/FeeOption.d.ts +1 -1
- package/dist/widget/components/FeeOption.d.ts.map +1 -1
- package/dist/widget/components/FeeOptions.d.ts +1 -1
- package/dist/widget/components/FeeOptions.d.ts.map +1 -1
- package/dist/widget/components/FiatSelector.d.ts +1 -1
- package/dist/widget/components/FiatSelector.d.ts.map +1 -1
- package/dist/widget/components/FiatSelectorButton.d.ts +1 -1
- package/dist/widget/components/FiatSelectorButton.d.ts.map +1 -1
- package/dist/widget/components/Fund.d.ts +1 -1
- package/dist/widget/components/Fund.d.ts.map +1 -1
- package/dist/widget/components/FundMethods.d.ts.map +1 -1
- package/dist/widget/components/FundingMethodSelectorButton.d.ts +1 -1
- package/dist/widget/components/FundingMethodSelectorButton.d.ts.map +1 -1
- package/dist/widget/components/MeldHistory.d.ts +1 -1
- package/dist/widget/components/MeldHistory.d.ts.map +1 -1
- package/dist/widget/components/MeldTransactionStatus.d.ts +1 -1
- package/dist/widget/components/MeldTransactionStatus.d.ts.map +1 -1
- package/dist/widget/components/MeshExchangeAccountHeader.d.ts +9 -0
- package/dist/widget/components/MeshExchangeAccountHeader.d.ts.map +1 -0
- package/dist/widget/components/OnrampHistoryRow.d.ts +1 -1
- package/dist/widget/components/OnrampHistoryRow.d.ts.map +1 -1
- package/dist/widget/components/OnrampProviderConfirmation.d.ts +1 -1
- package/dist/widget/components/OnrampProviderConfirmation.d.ts.map +1 -1
- package/dist/widget/components/Pay.d.ts.map +1 -1
- package/dist/widget/components/PoolDeposit.d.ts +2 -6
- package/dist/widget/components/PoolDeposit.d.ts.map +1 -1
- package/dist/widget/components/PoolWithdraw.d.ts +2 -2
- package/dist/widget/components/PoolWithdraw.d.ts.map +1 -1
- package/dist/widget/components/PulsatingButton.d.ts +9 -0
- package/dist/widget/components/PulsatingButton.d.ts.map +1 -0
- package/dist/widget/components/Receipt.d.ts +1 -1
- package/dist/widget/components/Receipt.d.ts.map +1 -1
- package/dist/widget/components/RecipientSelectorButton.d.ts.map +1 -1
- package/dist/widget/components/Recipients.d.ts.map +1 -1
- package/dist/widget/components/Swap.d.ts +2 -6
- package/dist/widget/components/Swap.d.ts.map +1 -1
- package/dist/widget/components/TokenList.d.ts +1 -0
- package/dist/widget/components/TokenList.d.ts.map +1 -1
- package/dist/widget/components/TokenSelector.d.ts +1 -2
- package/dist/widget/components/TokenSelector.d.ts.map +1 -1
- package/dist/widget/components/TransactionDetails.d.ts +1 -0
- package/dist/widget/components/TransactionDetails.d.ts.map +1 -1
- package/dist/widget/components/TransactionHistoryItem.d.ts +1 -0
- package/dist/widget/components/TransactionHistoryItem.d.ts.map +1 -1
- package/dist/widget/components/TransferPendingVertical.d.ts +1 -1
- package/dist/widget/components/TransferPendingVertical.d.ts.map +1 -1
- package/dist/widget/components/WalletAccountHeader.d.ts +7 -0
- package/dist/widget/components/WalletAccountHeader.d.ts.map +1 -0
- package/dist/widget/components/WalletConfirmation.d.ts +2 -1
- package/dist/widget/components/WalletConfirmation.d.ts.map +1 -1
- package/dist/widget/components/WalletConnect.d.ts.map +1 -1
- package/dist/widget/components/WidgetProviders.d.ts.map +1 -1
- package/dist/widget/components/Withdraw.d.ts.map +1 -1
- package/dist/widget/index.d.ts +13 -0
- package/dist/widget/index.d.ts.map +1 -1
- package/dist/widget/index.js +16 -8
- package/dist/widget/modes/EarnWidget.d.ts +83 -0
- package/dist/widget/modes/EarnWidget.d.ts.map +1 -0
- package/dist/widget/modes/FundWidget.d.ts +103 -0
- package/dist/widget/modes/FundWidget.d.ts.map +1 -0
- package/dist/widget/modes/PayWidget.d.ts +86 -0
- package/dist/widget/modes/PayWidget.d.ts.map +1 -0
- package/dist/widget/modes/SwapWidget.d.ts +82 -0
- package/dist/widget/modes/SwapWidget.d.ts.map +1 -0
- package/dist/widget/modes/WithdrawWidget.d.ts +71 -0
- package/dist/widget/modes/WithdrawWidget.d.ts.map +1 -0
- package/dist/widget/providers/TrailsProvider.d.ts +3 -0
- package/dist/widget/providers/TrailsProvider.d.ts.map +1 -1
- package/dist/widget/shared/mapSharedProps.d.ts +9 -0
- package/dist/widget/shared/mapSharedProps.d.ts.map +1 -0
- package/dist/widget/shared/methodMap.d.ts +18 -0
- package/dist/widget/shared/methodMap.d.ts.map +1 -0
- package/dist/widget/shared/resolution.d.ts +22 -0
- package/dist/widget/shared/resolution.d.ts.map +1 -0
- package/dist/widget/shared/resolvePaymentSource.d.ts +34 -0
- package/dist/widget/shared/resolvePaymentSource.d.ts.map +1 -0
- package/dist/widget/shared/types.d.ts +94 -0
- package/dist/widget/shared/types.d.ts.map +1 -0
- package/dist/widget/types/commonProps.d.ts +3 -7
- package/dist/widget/types/commonProps.d.ts.map +1 -1
- package/dist/widget/utils/fundMethodSwitchState.d.ts +1 -0
- package/dist/widget/utils/fundMethodSwitchState.d.ts.map +1 -1
- package/dist/widget/utils/viewManagerGuards.d.ts +1 -1
- package/dist/widget/utils/viewManagerGuards.d.ts.map +1 -1
- package/dist/widget/widget.d.ts +21 -16
- package/dist/widget/widget.d.ts.map +1 -1
- package/package.json +17 -23
- package/dist/buffer.d.ts +0 -3
- package/dist/buffer.d.ts.map +0 -1
- package/dist/ccip-CT_An6eM.js +0 -230
- package/dist/index-RfqL5Foz.js +0 -114567
- package/dist/paymasterSend.d.ts +0 -90
- package/dist/paymasterSend.d.ts.map +0 -1
- package/dist/sendUserOp.d.ts +0 -122
- package/dist/sendUserOp.d.ts.map +0 -1
- package/dist/toSimpleSmartAccount.d.ts +0 -95
- package/dist/toSimpleSmartAccount.d.ts.map +0 -1
- package/dist/transactionIntent/utils/erc20Approval.d.ts +0 -34
- package/dist/transactionIntent/utils/erc20Approval.d.ts.map +0 -1
- package/dist/utils/allowance.d.ts +0 -19
- package/dist/utils/allowance.d.ts.map +0 -1
- package/dist/widget/analytics/useWidgetAnalytics.d.ts.map +0 -1
- package/dist/widget/components/FeeBreakdown.d.ts +0 -9
- package/dist/widget/components/FeeBreakdown.d.ts.map +0 -1
- package/dist/widget/components/HideBalances.d.ts +0 -4
- package/dist/widget/components/HideBalances.d.ts.map +0 -1
- package/dist/widget/components/MeshExchangeSelection.d.ts.map +0 -1
- package/dist/widget/components/OnrampDeposit.d.ts +0 -10
- package/dist/widget/components/OnrampDeposit.d.ts.map +0 -1
- package/dist/widget/components/SwapSettings.d.ts +0 -4
- package/dist/widget/components/SwapSettings.d.ts.map +0 -1
- package/dist/widget/components/TruncatedAddress.d.ts +0 -12
- package/dist/widget/components/TruncatedAddress.d.ts.map +0 -1
- package/dist/widget/components/WalletImage.d.ts +0 -8
- package/dist/widget/components/WalletImage.d.ts.map +0 -1
- package/dist/widget/css/compiled.css +0 -26
- package/dist/widget/css/index.css +0 -686
- package/dist/widget/hooks/useAddressWalletIcon.d.ts.map +0 -1
- package/dist/widget/hooks/useAmountUsd.d.ts.map +0 -1
- package/dist/widget/hooks/useBalanceVisible.d.ts.map +0 -1
- package/dist/widget/hooks/useChainFilter.d.ts.map +0 -1
- package/dist/widget/hooks/useCheckout.d.ts.map +0 -1
- package/dist/widget/hooks/useClickTracking.d.ts.map +0 -1
- package/dist/widget/hooks/useCombinedHistory.d.ts.map +0 -1
- package/dist/widget/hooks/useConnector.d.ts.map +0 -1
- package/dist/widget/hooks/useCustomTokenSearch.d.ts.map +0 -1
- package/dist/widget/hooks/useDebounce.d.ts.map +0 -1
- package/dist/widget/hooks/useDebugScreens.d.ts.map +0 -1
- package/dist/widget/hooks/useDefaultDestinationToken.d.ts.map +0 -1
- package/dist/widget/hooks/useDefaultOriginToken.d.ts.map +0 -1
- package/dist/widget/hooks/useDepositMonitor.d.ts.map +0 -1
- package/dist/widget/hooks/useDestinationSelectedToken.d.ts.map +0 -1
- package/dist/widget/hooks/useDisplayCurrencyPreference.d.ts.map +0 -1
- package/dist/widget/hooks/useEarnPool.d.ts.map +0 -1
- package/dist/widget/hooks/useExecutingIntentsCount.d.ts.map +0 -1
- package/dist/widget/hooks/useExternalFundingReceiptSync.d.ts.map +0 -1
- package/dist/widget/hooks/useFiatOnRampCurrencies.d.ts.map +0 -1
- package/dist/widget/hooks/useFiatSelectedCurrency.d.ts.map +0 -1
- package/dist/widget/hooks/useGetIntent.d.ts.map +0 -1
- package/dist/widget/hooks/useIntentReceiptBalances.d.ts.map +0 -1
- package/dist/widget/hooks/useIntentTransactionHistory.d.ts.map +0 -1
- package/dist/widget/hooks/useIsConnectedWalletSmartContract.d.ts +0 -7
- package/dist/widget/hooks/useIsConnectedWalletSmartContract.d.ts.map +0 -1
- package/dist/widget/hooks/useIsMobile.d.ts.map +0 -1
- package/dist/widget/hooks/useIsSequenceWallet.d.ts.map +0 -1
- package/dist/widget/hooks/useLocalePreference.d.ts.map +0 -1
- package/dist/widget/hooks/useMeldTransactionHistory.d.ts.map +0 -1
- package/dist/widget/hooks/useMeldTransactionStatus.d.ts.map +0 -1
- package/dist/widget/hooks/useOnRampCountryDefaults.d.ts.map +0 -1
- package/dist/widget/hooks/useOnRampPaymentMethods.d.ts.map +0 -1
- package/dist/widget/hooks/useOnRampProviderWidget.d.ts.map +0 -1
- package/dist/widget/hooks/useOnRampQuote.d.ts.map +0 -1
- package/dist/widget/hooks/useOnRampTransactionStatus.d.ts.map +0 -1
- package/dist/widget/hooks/useOriginSelectedToken.d.ts.map +0 -1
- package/dist/widget/hooks/usePayMessage.d.ts.map +0 -1
- package/dist/widget/hooks/usePriceImpactWarning.d.ts.map +0 -1
- package/dist/widget/hooks/useQuote.d.ts +0 -378
- package/dist/widget/hooks/useQuote.d.ts.map +0 -1
- package/dist/widget/hooks/useRecentTokens.d.ts.map +0 -1
- package/dist/widget/hooks/useRecipients.d.ts.map +0 -1
- package/dist/widget/hooks/useScreenTracking.d.ts +0 -2
- package/dist/widget/hooks/useScreenTracking.d.ts.map +0 -1
- package/dist/widget/hooks/useSelectedFeeOption.d.ts.map +0 -1
- package/dist/widget/hooks/useSelectedFundMethod.d.ts.map +0 -1
- package/dist/widget/hooks/useSelectedRecipient.d.ts.map +0 -1
- package/dist/widget/hooks/useSendForm.d.ts.map +0 -1
- package/dist/widget/hooks/useSwapAmount.d.ts.map +0 -1
- package/dist/widget/hooks/useSwapState.d.ts.map +0 -1
- package/dist/widget/hooks/useTargetAmount.d.ts.map +0 -1
- package/dist/widget/hooks/useTheme.d.ts.map +0 -1
- package/dist/widget/hooks/useTokenList.d.ts.map +0 -1
- package/dist/widget/hooks/useTrailsSendTransaction.d.ts.map +0 -1
- package/dist/widget/hooks/useViewManager.d.ts.map +0 -1
- package/dist/widget/hooks/useWalletConnectUri.d.ts +0 -11
- package/dist/widget/hooks/useWalletConnectUri.d.ts.map +0 -1
- package/dist/widget/hooks/useWalletConnectionContext.d.ts.map +0 -1
- package/dist/widget/hooks/useWidgetProps.d.ts.map +0 -1
- package/dist/widget/types.d.ts +0 -44
- package/dist/widget/types.d.ts.map +0 -1
- package/dist/widget/utils/historyUtils.d.ts +0 -18
- package/dist/widget/utils/historyUtils.d.ts.map +0 -1
- package/src/abi.ts +0 -38
- package/src/abis/erc20.ts +0 -60
- package/src/abis/trailsHydrate.ts +0 -185
- package/src/abis/trailsRouter.ts +0 -121
- package/src/abis/trailsSweep.ts +0 -32
- package/src/abortController.ts +0 -35
- package/src/analytics.ts +0 -2029
- package/src/buffer.ts +0 -10
- package/src/chainSwitch.ts +0 -95
- package/src/chains.ts +0 -570
- package/src/config.ts +0 -118
- package/src/constants.ts +0 -239
- package/src/contractUtils.ts +0 -46
- package/src/cssUtils.ts +0 -5
- package/src/customChains.ts +0 -24
- package/src/customTokens.ts +0 -168
- package/src/decoders.ts +0 -365
- package/src/ens.ts +0 -74
- package/src/error.ts +0 -268
- package/src/estimate.ts +0 -480
- package/src/explorer.ts +0 -38
- package/src/fees.ts +0 -362
- package/src/gasless.ts +0 -638
- package/src/index.ts +0 -205
- package/src/indexerClient.ts +0 -118
- package/src/intentReceiptMonitor.ts +0 -99
- package/src/intentReceiptPoller.ts +0 -327
- package/src/intents.ts +0 -1133
- package/src/keyMachineClient.ts +0 -29
- package/src/keymachine/index.ts +0 -175
- package/src/keymachine/key-machine.gen.ts +0 -993
- package/src/localeUtils.ts +0 -244
- package/src/logger/index.ts +0 -95
- package/src/logger/useSyncLoggerDebug.ts +0 -11
- package/src/logger.ts +0 -1
- package/src/meld/components/MeldCountriesList.tsx +0 -237
- package/src/meld/components/MeldFundMethods.tsx +0 -265
- package/src/meld/components/MeldProvidersList.tsx +0 -187
- package/src/meld/components/MeldTokensList.tsx +0 -321
- package/src/meld/components/SimpleHeader.tsx +0 -35
- package/src/meld/utils/meld.ts +0 -77
- package/src/mutations.ts +0 -166
- package/src/onramp/MeshConnectFlow.tsx +0 -86
- package/src/onramp/MeshConnectIframe.tsx +0 -661
- package/src/onramp/SendFromExchangeButton.tsx +0 -81
- package/src/onramp/TrailsOnRampProvider.tsx +0 -59
- package/src/onramp/index.ts +0 -31
- package/src/onramp/meshconnect.ts +0 -277
- package/src/onramp/trailsOnramp.tsx +0 -130
- package/src/onramp-client/index.ts +0 -52
- package/src/onrampClient.ts +0 -46
- package/src/paymasterSend.ts +0 -521
- package/src/placeholder.ts +0 -92
- package/src/poolUtils.ts +0 -222
- package/src/pools.ts +0 -120
- package/src/prepareSend.ts +0 -553
- package/src/query/balance.fetchers.ts +0 -753
- package/src/query/balance.hooks.ts +0 -357
- package/src/query/balance.queries.ts +0 -307
- package/src/query/chains.hooks.ts +0 -45
- package/src/query/chains.queries.ts +0 -17
- package/src/query/client.ts +0 -20
- package/src/query/fiat.fetchers.ts +0 -33
- package/src/query/fiat.hooks.ts +0 -71
- package/src/query/fiat.queries.ts +0 -67
- package/src/query/geo.fetchers.ts +0 -100
- package/src/query/geo.hooks.ts +0 -16
- package/src/query/geo.queries.ts +0 -36
- package/src/query/helpers.ts +0 -81
- package/src/query/meld.fetchers.ts +0 -97
- package/src/query/meld.hooks.ts +0 -18
- package/src/query/meld.queries.ts +0 -184
- package/src/query/persister.ts +0 -11
- package/src/query/price.fetchers.ts +0 -53
- package/src/query/price.hooks.ts +0 -46
- package/src/query/price.queries.ts +0 -364
- package/src/query/tokenList.queries.ts +0 -118
- package/src/queryParams.ts +0 -100
- package/src/recover.ts +0 -1728
- package/src/sendUserOp.ts +0 -512
- package/src/theme.ts +0 -2
- package/src/toSimpleSmartAccount.ts +0 -567
- package/src/toast.ts +0 -110
- package/src/tokens.ts +0 -1862
- package/src/trailsClient.ts +0 -40
- package/src/transactionIntent/constants.ts +0 -15
- package/src/transactionIntent/deposits/depositOrchestrator.ts +0 -243
- package/src/transactionIntent/deposits/gaslessDeposit.ts +0 -705
- package/src/transactionIntent/deposits/index.ts +0 -3
- package/src/transactionIntent/deposits/standardDeposit.ts +0 -590
- package/src/transactionIntent/execution/index.ts +0 -1
- package/src/transactionIntent/execution/transactionState.ts +0 -38
- package/src/transactionIntent/handlers/index.ts +0 -1
- package/src/transactionIntent/handlers/intentHandler.ts +0 -1613
- package/src/transactionIntent/helpers/index.ts +0 -1
- package/src/transactionIntent/helpers/transactionStateHelpers.ts +0 -440
- package/src/transactionIntent/index.ts +0 -10
- package/src/transactionIntent/quote/feeExtractors.ts +0 -61
- package/src/transactionIntent/quote/index.ts +0 -3
- package/src/transactionIntent/quote/normalizeQuote.ts +0 -559
- package/src/transactionIntent/quote/quoteHelpers.ts +0 -117
- package/src/transactionIntent/types.ts +0 -241
- package/src/transactionIntent/utils/balanceChecker.ts +0 -103
- package/src/transactionIntent/utils/erc20Approval.ts +0 -171
- package/src/transactionIntent/utils/index.ts +0 -2
- package/src/transactionIntent/utils/resilientDepositTracker.ts +0 -171
- package/src/transactionIntent/utils/testnetHelpers.ts +0 -5
- package/src/transactionIntent/validators.ts +0 -27
- package/src/transactions.ts +0 -429
- package/src/types.d.ts +0 -16
- package/src/umd.tsx +0 -33
- package/src/utils/address.ts +0 -78
- package/src/utils/allowance.ts +0 -47
- package/src/utils/fiat.ts +0 -32
- package/src/utils/format.ts +0 -625
- package/src/utils/passthrough.ts +0 -93
- package/src/utils/time.ts +0 -118
- package/src/utils/validation.ts +0 -104
- package/src/utils.ts +0 -112
- package/src/version.ts +0 -8
- package/src/vite-env.d.ts +0 -4
- package/src/walletUtils.ts +0 -293
- package/src/wallets.ts +0 -544
- package/src/widget/analytics/useWidgetAnalytics.ts +0 -56
- package/src/widget/assets/Exchange-icon-black.svg +0 -5
- package/src/widget/assets/MetaMask-icon-fox-with-margins.svg +0 -31
- package/src/widget/assets/MetaMask-icon-fox.svg +0 -26
- package/src/widget/assets/MetaMask-logo-black.svg +0 -3
- package/src/widget/assets/MetaMask-logo-white.svg +0 -16
- package/src/widget/assets/Trails-logo-black.svg +0 -13
- package/src/widget/assets/Trails-logo-white.svg +0 -13
- package/src/widget/assets/WalletChange-black.svg +0 -5
- package/src/widget/assets/WalletConnect-logo-black.svg +0 -14
- package/src/widget/assets/WalletConnect-logo-blue.svg +0 -14
- package/src/widget/assets/WalletConnect-logo-white.svg +0 -14
- package/src/widget/assets/WalletConnect-logo.svg +0 -40
- package/src/widget/assets/aave.svg +0 -14
- package/src/widget/assets/morpho.svg +0 -14
- package/src/widget/compiled.css +0 -26
- package/src/widget/components/AccountActionsDropdown.tsx +0 -31
- package/src/widget/components/AccountIntentTransactionHistory.tsx +0 -756
- package/src/widget/components/AccountIntentTransactionHistoryButton.tsx +0 -34
- package/src/widget/components/AccountSettings.tsx +0 -168
- package/src/widget/components/AddressOrEnsName.tsx +0 -24
- package/src/widget/components/AddressWalletIcon.tsx +0 -49
- package/src/widget/components/AllChainsIcon.tsx +0 -54
- package/src/widget/components/ChainFilterDropdown.tsx +0 -220
- package/src/widget/components/ChainImage.tsx +0 -40
- package/src/widget/components/ChainList.tsx +0 -158
- package/src/widget/components/ClassicSwap.tsx +0 -1761
- package/src/widget/components/ConfigDisplay.tsx +0 -158
- package/src/widget/components/ConnectWallet.tsx +0 -566
- package/src/widget/components/ConnectedWallets.tsx +0 -414
- package/src/widget/components/CopyButton.tsx +0 -108
- package/src/widget/components/CountryFilterDropdown.tsx +0 -179
- package/src/widget/components/DebugMenu.tsx +0 -50
- package/src/widget/components/DebugScreensList.tsx +0 -70
- package/src/widget/components/DebugToast.tsx +0 -63
- package/src/widget/components/DepositTracker.tsx +0 -326
- package/src/widget/components/DirectTransfer.tsx +0 -305
- package/src/widget/components/Disconnect.tsx +0 -68
- package/src/widget/components/DynamicInputStyles.tsx +0 -121
- package/src/widget/components/DynamicSizeInputField.tsx +0 -245
- package/src/widget/components/ENSAvatar.tsx +0 -33
- package/src/widget/components/Earn.tsx +0 -160
- package/src/widget/components/EarnPools.tsx +0 -417
- package/src/widget/components/EarnPoolsFilters.tsx +0 -165
- package/src/widget/components/ErrorAnimationIcon.tsx +0 -130
- package/src/widget/components/ErrorDisplay.tsx +0 -152
- package/src/widget/components/ExecutingIntentsBadge.tsx +0 -24
- package/src/widget/components/ExecutionStatusBadge.tsx +0 -53
- package/src/widget/components/FeeBreakdown.tsx +0 -155
- package/src/widget/components/FeeOption.tsx +0 -170
- package/src/widget/components/FeeOptions.tsx +0 -247
- package/src/widget/components/FiatSelector.tsx +0 -308
- package/src/widget/components/FiatSelectorButton.tsx +0 -68
- package/src/widget/components/Footer.tsx +0 -67
- package/src/widget/components/Fund.tsx +0 -2463
- package/src/widget/components/FundMethods.tsx +0 -423
- package/src/widget/components/FundWalletSelection.tsx +0 -60
- package/src/widget/components/FundingMethodSelectorButton.tsx +0 -106
- package/src/widget/components/GreenCheckAnimation.tsx +0 -119
- package/src/widget/components/HideBalances.tsx +0 -24
- package/src/widget/components/HighPriceImpactBlock.tsx +0 -44
- package/src/widget/components/HookModalContent.tsx +0 -377
- package/src/widget/components/Identicon.tsx +0 -228
- package/src/widget/components/LoadingSpinner.tsx +0 -9
- package/src/widget/components/MeldForm.tsx +0 -780
- package/src/widget/components/MeldHistory.tsx +0 -433
- package/src/widget/components/MeldStepsFlow.tsx +0 -1651
- package/src/widget/components/MeldTransactionStatus.tsx +0 -255
- package/src/widget/components/MeshExchangeSelection.tsx +0 -218
- package/src/widget/components/Modal.tsx +0 -86
- package/src/widget/components/OFTProgressBar.tsx +0 -89
- package/src/widget/components/OnRampProviderSelector.tsx +0 -263
- package/src/widget/components/OnrampDeposit.tsx +0 -122
- package/src/widget/components/OnrampErrorScreen.tsx +0 -163
- package/src/widget/components/OnrampHistoryRow.tsx +0 -321
- package/src/widget/components/OnrampPaymentMethods.tsx +0 -81
- package/src/widget/components/OnrampProviderConfirmation.tsx +0 -1060
- package/src/widget/components/OriginSelectionAmount.tsx +0 -144
- package/src/widget/components/OriginTransferInformation.tsx +0 -59
- package/src/widget/components/Pay.tsx +0 -1165
- package/src/widget/components/PaymentMethods.tsx +0 -198
- package/src/widget/components/PercentageMaxButtons.tsx +0 -112
- package/src/widget/components/PoolDeposit.tsx +0 -642
- package/src/widget/components/PoolWithdraw.tsx +0 -761
- package/src/widget/components/PriceImpactWarning.tsx +0 -87
- package/src/widget/components/QRCodeOptions.tsx +0 -65
- package/src/widget/components/QRCodeWalletSelect.tsx +0 -80
- package/src/widget/components/QrCode.tsx +0 -216
- package/src/widget/components/QuoteDetails.tsx +0 -1275
- package/src/widget/components/Receipt.tsx +0 -673
- package/src/widget/components/ReceiptRecoverableFunds.tsx +0 -135
- package/src/widget/components/RecentTokens.tsx +0 -66
- package/src/widget/components/RecipientSelectorButton.tsx +0 -50
- package/src/widget/components/Recipients.tsx +0 -413
- package/src/widget/components/RefundWarning.tsx +0 -61
- package/src/widget/components/RequiredPropsError.tsx +0 -33
- package/src/widget/components/ScreenHeader.tsx +0 -123
- package/src/widget/components/SearchInputField.tsx +0 -99
- package/src/widget/components/SessionTimeoutScreen.tsx +0 -103
- package/src/widget/components/ShadowPortal.tsx +0 -99
- package/src/widget/components/ShadowRootContext.tsx +0 -17
- package/src/widget/components/SimpleRecipientInputScreen.tsx +0 -91
- package/src/widget/components/SlippageToleranceSettings.tsx +0 -279
- package/src/widget/components/Swap.tsx +0 -50
- package/src/widget/components/SwapDisplay.tsx +0 -68
- package/src/widget/components/SwapSettings.tsx +0 -52
- package/src/widget/components/ThemeProvider.tsx +0 -115
- package/src/widget/components/ThemeSyncer.tsx +0 -47
- package/src/widget/components/Toast.tsx +0 -336
- package/src/widget/components/TokenDisplayNonSelectable.tsx +0 -40
- package/src/widget/components/TokenImage.tsx +0 -156
- package/src/widget/components/TokenList.tsx +0 -107
- package/src/widget/components/TokenSelector.tsx +0 -807
- package/src/widget/components/TokenSelectorButton.tsx +0 -123
- package/src/widget/components/TokenSkeleton.tsx +0 -53
- package/src/widget/components/Tooltip.tsx +0 -64
- package/src/widget/components/TrailsHookModal.tsx +0 -107
- package/src/widget/components/TransactionDetails.tsx +0 -534
- package/src/widget/components/TransactionHistoryItem.tsx +0 -767
- package/src/widget/components/TransferPendingVertical.tsx +0 -591
- package/src/widget/components/TruncatedAddress.tsx +0 -68
- package/src/widget/components/TruncatedTransactionHash.tsx +0 -74
- package/src/widget/components/UserPreferences.tsx +0 -570
- package/src/widget/components/WaasFeeOptions.tsx +0 -588
- package/src/widget/components/WalletConfirmation.tsx +0 -220
- package/src/widget/components/WalletConnect.tsx +0 -348
- package/src/widget/components/WalletConnectionPending.tsx +0 -178
- package/src/widget/components/WalletImage.tsx +0 -52
- package/src/widget/components/WalletList.tsx +0 -125
- package/src/widget/components/WidgetProviders.tsx +0 -82
- package/src/widget/components/Withdraw.tsx +0 -1106
- package/src/widget/components/YellowWarningAnimation.tsx +0 -146
- package/src/widget/hooks/useAddressWalletIcon.ts +0 -55
- package/src/widget/hooks/useAmountUsd.ts +0 -44
- package/src/widget/hooks/useBalanceVisible.tsx +0 -95
- package/src/widget/hooks/useChainFilter.tsx +0 -56
- package/src/widget/hooks/useCheckout.ts +0 -361
- package/src/widget/hooks/useClickTracking.ts +0 -74
- package/src/widget/hooks/useCombinedHistory.ts +0 -420
- package/src/widget/hooks/useConnector.tsx +0 -24
- package/src/widget/hooks/useCustomTokenSearch.tsx +0 -369
- package/src/widget/hooks/useDebounce.ts +0 -25
- package/src/widget/hooks/useDebugScreens.ts +0 -600
- package/src/widget/hooks/useDefaultDestinationToken.tsx +0 -179
- package/src/widget/hooks/useDefaultOriginToken.tsx +0 -407
- package/src/widget/hooks/useDepositMonitor.ts +0 -118
- package/src/widget/hooks/useDestinationSelectedToken.tsx +0 -310
- package/src/widget/hooks/useDisplayCurrencyPreference.tsx +0 -145
- package/src/widget/hooks/useEarnPool.tsx +0 -36
- package/src/widget/hooks/useExecutingIntentsCount.ts +0 -78
- package/src/widget/hooks/useExternalFundingReceiptSync.ts +0 -79
- package/src/widget/hooks/useFiatOnRampCurrencies.ts +0 -46
- package/src/widget/hooks/useFiatSelectedCurrency.tsx +0 -123
- package/src/widget/hooks/useGetIntent.ts +0 -54
- package/src/widget/hooks/useIntentReceiptBalances.ts +0 -141
- package/src/widget/hooks/useIntentTransactionHistory.ts +0 -790
- package/src/widget/hooks/useIsConnectedWalletSmartContract.ts +0 -43
- package/src/widget/hooks/useIsMobile.tsx +0 -50
- package/src/widget/hooks/useIsSequenceWallet.ts +0 -17
- package/src/widget/hooks/useLocalePreference.tsx +0 -187
- package/src/widget/hooks/useMeldTransactionHistory.ts +0 -184
- package/src/widget/hooks/useMeldTransactionStatus.ts +0 -707
- package/src/widget/hooks/useOnRampCountryDefaults.ts +0 -57
- package/src/widget/hooks/useOnRampPaymentMethods.ts +0 -72
- package/src/widget/hooks/useOnRampProviderWidget.ts +0 -184
- package/src/widget/hooks/useOnRampQuote.ts +0 -340
- package/src/widget/hooks/useOnRampTransactionStatus.ts +0 -196
- package/src/widget/hooks/useOriginSelectedToken.tsx +0 -253
- package/src/widget/hooks/usePayMessage.tsx +0 -496
- package/src/widget/hooks/usePriceImpactWarning.ts +0 -17
- package/src/widget/hooks/useQuote.ts +0 -1239
- package/src/widget/hooks/useRecentTokens.ts +0 -159
- package/src/widget/hooks/useRecipients.ts +0 -167
- package/src/widget/hooks/useScreenTracking.ts +0 -14
- package/src/widget/hooks/useSelectedFeeOption.tsx +0 -323
- package/src/widget/hooks/useSelectedFundMethod.tsx +0 -93
- package/src/widget/hooks/useSelectedRecipient.tsx +0 -75
- package/src/widget/hooks/useSendForm.ts +0 -1389
- package/src/widget/hooks/useSwapAmount.tsx +0 -50
- package/src/widget/hooks/useSwapState.tsx +0 -121
- package/src/widget/hooks/useTargetAmount.ts +0 -26
- package/src/widget/hooks/useTheme.tsx +0 -80
- package/src/widget/hooks/useTokenList.ts +0 -1168
- package/src/widget/hooks/useTrailsSendTransaction.ts +0 -987
- package/src/widget/hooks/useViewManager.tsx +0 -506
- package/src/widget/hooks/useWalletConnectUri.tsx +0 -307
- package/src/widget/hooks/useWalletConnectionContext.tsx +0 -128
- package/src/widget/hooks/useWidgetProps.tsx +0 -33
- package/src/widget/index.css +0 -686
- package/src/widget/index.tsx +0 -28
- package/src/widget/providers/TrailsModalProvider.tsx +0 -238
- package/src/widget/providers/TrailsProvider.tsx +0 -155
- package/src/widget/providers/UserActivityProvider.tsx +0 -78
- package/src/widget/providers/WidgetProviderTree.tsx +0 -90
- package/src/widget/styles.ts +0 -26
- package/src/widget/types/analytics.ts +0 -22
- package/src/widget/types/commonProps.ts +0 -56
- package/src/widget/types/svg.d.ts +0 -8
- package/src/widget/types.ts +0 -51
- package/src/widget/utils/countryUtils.ts +0 -89
- package/src/widget/utils/createWagmiConfig.ts +0 -43
- package/src/widget/utils/forexRateStore.ts +0 -120
- package/src/widget/utils/fundMethodSwitchState.ts +0 -27
- package/src/widget/utils/historyFilters.ts +0 -157
- package/src/widget/utils/historyUtils.ts +0 -101
- package/src/widget/utils/localeStore.ts +0 -68
- package/src/widget/utils/meldProviderUtils.ts +0 -26
- package/src/widget/utils/meshSupportedTokens.ts +0 -28
- package/src/widget/utils/onrampConfig.ts +0 -15
- package/src/widget/utils/statusLabel.ts +0 -3
- package/src/widget/utils/tokens.ts +0 -138
- package/src/widget/utils/trailsOnrampConfig.ts +0 -39
- package/src/widget/utils/transactionFailure.ts +0 -52
- package/src/widget/utils/viewManagerGuards.ts +0 -49
- package/src/widget/utils/windowUtils.ts +0 -138
- package/src/widget/widget.tsx +0 -3400
- /package/dist/{widget/hooks → hooks}/useAddressWalletIcon.d.ts +0 -0
- /package/dist/{widget/hooks → hooks}/useAmountUsd.d.ts +0 -0
- /package/dist/{widget/hooks → hooks}/useBalanceVisible.d.ts +0 -0
- /package/dist/{widget/hooks → hooks}/useChainFilter.d.ts +0 -0
- /package/dist/{widget/hooks → hooks}/useClickTracking.d.ts +0 -0
- /package/dist/{widget/hooks → hooks}/useConnector.d.ts +0 -0
- /package/dist/{widget/hooks → hooks}/useDebounce.d.ts +0 -0
- /package/dist/{widget/hooks → hooks}/useDepositMonitor.d.ts +0 -0
- /package/dist/{widget/hooks → hooks}/useDisplayCurrencyPreference.d.ts +0 -0
- /package/dist/{widget/hooks → hooks}/useExecutingIntentsCount.d.ts +0 -0
- /package/dist/{widget/hooks → hooks}/useFiatSelectedCurrency.d.ts +0 -0
- /package/dist/{widget/hooks → hooks}/useGetIntent.d.ts +0 -0
- /package/dist/{widget/hooks → hooks}/useIsMobile.d.ts +0 -0
- /package/dist/{widget/hooks → hooks}/useIsSequenceWallet.d.ts +0 -0
- /package/dist/{widget/hooks → hooks}/useLocalePreference.d.ts +0 -0
- /package/dist/{widget/hooks → hooks}/useMeldTransactionHistory.d.ts +0 -0
- /package/dist/{widget/hooks → hooks}/useMeldTransactionStatus.d.ts +0 -0
- /package/dist/{widget/hooks → hooks}/useOnRampCountryDefaults.d.ts +0 -0
- /package/dist/{widget/hooks → hooks}/usePayMessage.d.ts +0 -0
- /package/dist/{widget/hooks → hooks}/usePriceImpactWarning.d.ts +0 -0
- /package/dist/{widget/hooks → hooks}/useRecipients.d.ts +0 -0
- /package/dist/{widget/hooks → hooks}/useSelectedFeeOption.d.ts +0 -0
- /package/dist/{widget/hooks → hooks}/useSelectedRecipient.d.ts +0 -0
- /package/dist/{widget/hooks → hooks}/useSwapAmount.d.ts +0 -0
- /package/dist/{widget/hooks → hooks}/useTargetAmount.d.ts +0 -0
- /package/dist/{widget/hooks → hooks}/useTheme.d.ts +0 -0
- /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
|
-
}
|