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,179 +0,0 @@
|
|
|
1
|
-
import { useMemo, useRef } from "react"
|
|
2
|
-
import { useAccount } from "wagmi"
|
|
3
|
-
import { base, arbitrum } from "viem/chains"
|
|
4
|
-
import type { Address } from "ox"
|
|
5
|
-
import { useSupportedTokens } from "../../tokens.js"
|
|
6
|
-
import type { Token } from "../../tokens.js"
|
|
7
|
-
import { useTokenBalances } from "../../query/balance.hooks.js"
|
|
8
|
-
import { logger } from "../../logger.js"
|
|
9
|
-
|
|
10
|
-
/**
|
|
11
|
-
* Hook for intelligent default destination token selection.
|
|
12
|
-
*
|
|
13
|
-
* This hook calculates the best destination token based on:
|
|
14
|
-
* - Origin token's chain (to minimize bridging costs)
|
|
15
|
-
* - Token availability on destination chain
|
|
16
|
-
* - User's existing balances for accurate balance display
|
|
17
|
-
*
|
|
18
|
-
* Only calculates destination when toToken/toChainId are NOT specified.
|
|
19
|
-
*
|
|
20
|
-
* @param originToken - The selected origin token
|
|
21
|
-
* @returns defaultDestinationToken - Best destination token or null
|
|
22
|
-
* @returns isLoading - Whether token data is still loading
|
|
23
|
-
*/
|
|
24
|
-
export function useDefaultDestinationToken(originToken: Token | null) {
|
|
25
|
-
const { address } = useAccount()
|
|
26
|
-
|
|
27
|
-
// Only fetch supported tokens when we have an origin token to calculate destination
|
|
28
|
-
const { supportedTokens, isLoadingTokens } = useSupportedTokens({
|
|
29
|
-
disabled: !originToken,
|
|
30
|
-
})
|
|
31
|
-
|
|
32
|
-
// Only fetch balances when we have an origin token
|
|
33
|
-
const { sortedTokens, isLoadingSortedTokens } = useTokenBalances(
|
|
34
|
-
originToken ? (address as Address.Address) : null,
|
|
35
|
-
undefined,
|
|
36
|
-
{ refetchInterval: false },
|
|
37
|
-
)
|
|
38
|
-
|
|
39
|
-
const isLoading = isLoadingTokens || isLoadingSortedTokens
|
|
40
|
-
|
|
41
|
-
// Use a ref to prevent unnecessary recalculations on balance-only updates
|
|
42
|
-
const stableDestTokenRef = useRef<Token | null>(null)
|
|
43
|
-
const lastOriginTokenKey = useRef<string>("")
|
|
44
|
-
|
|
45
|
-
const defaultDestinationToken = useMemo(() => {
|
|
46
|
-
// Don't compute destination if no origin token or still loading
|
|
47
|
-
if (!originToken || !supportedTokens?.length || !sortedTokens?.length) {
|
|
48
|
-
stableDestTokenRef.current = null
|
|
49
|
-
return null
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
// Create a key based on origin token identity (not balance)
|
|
53
|
-
const originTokenKey = `${originToken.symbol}-${originToken.chainId}-${originToken.contractAddress || "native"}`
|
|
54
|
-
|
|
55
|
-
// Only recalculate if origin token has actually changed
|
|
56
|
-
const shouldRecalculate =
|
|
57
|
-
originTokenKey !== lastOriginTokenKey.current ||
|
|
58
|
-
!stableDestTokenRef.current
|
|
59
|
-
|
|
60
|
-
if (!shouldRecalculate && stableDestTokenRef.current) {
|
|
61
|
-
return stableDestTokenRef.current
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
lastOriginTokenKey.current = originTokenKey
|
|
65
|
-
|
|
66
|
-
// Determine destination chain: Base if origin is not Base, Arbitrum if origin is Base
|
|
67
|
-
const defaultDestChainId =
|
|
68
|
-
originToken.chainId === base.id ? arbitrum.id : base.id
|
|
69
|
-
|
|
70
|
-
// Find USDC on destination chain first (preferred stable coin)
|
|
71
|
-
const usdcOnDestChain = supportedTokens.find(
|
|
72
|
-
(token: Token) =>
|
|
73
|
-
token.chainId === defaultDestChainId && token.symbol === "USDC",
|
|
74
|
-
)
|
|
75
|
-
|
|
76
|
-
let destToken: Token | null = null
|
|
77
|
-
|
|
78
|
-
if (usdcOnDestChain) {
|
|
79
|
-
destToken = usdcOnDestChain
|
|
80
|
-
logger.console.log(
|
|
81
|
-
"[trails-sdk] Selected USDC as destination token on chain:",
|
|
82
|
-
defaultDestChainId,
|
|
83
|
-
)
|
|
84
|
-
} else {
|
|
85
|
-
// Fallback: Find matching token on destination chain
|
|
86
|
-
const destChainTokens = supportedTokens.filter(
|
|
87
|
-
(token: Token) => token.chainId === defaultDestChainId,
|
|
88
|
-
)
|
|
89
|
-
|
|
90
|
-
// Try to find same symbol on destination chain first
|
|
91
|
-
const sameSymbolOnDestChain = destChainTokens.find((token: Token) => {
|
|
92
|
-
return token.symbol.toUpperCase() === originToken.symbol.toUpperCase()
|
|
93
|
-
})
|
|
94
|
-
|
|
95
|
-
if (sameSymbolOnDestChain) {
|
|
96
|
-
destToken = sameSymbolOnDestChain
|
|
97
|
-
logger.console.log(
|
|
98
|
-
"[trails-sdk] Selected same symbol token on destination chain:",
|
|
99
|
-
sameSymbolOnDestChain.symbol,
|
|
100
|
-
)
|
|
101
|
-
} else {
|
|
102
|
-
// Fallback: ETH on destination chain > first available token on destination chain
|
|
103
|
-
destToken =
|
|
104
|
-
destChainTokens.find((token: Token) => token.symbol === "ETH") ||
|
|
105
|
-
destChainTokens[0] ||
|
|
106
|
-
null
|
|
107
|
-
|
|
108
|
-
if (destToken) {
|
|
109
|
-
logger.console.log(
|
|
110
|
-
"[trails-sdk] Selected fallback token on destination chain:",
|
|
111
|
-
destToken.symbol,
|
|
112
|
-
)
|
|
113
|
-
}
|
|
114
|
-
}
|
|
115
|
-
}
|
|
116
|
-
|
|
117
|
-
if (!destToken) {
|
|
118
|
-
logger.console.log(
|
|
119
|
-
"[trails-sdk] No suitable destination token found on chain:",
|
|
120
|
-
defaultDestChainId,
|
|
121
|
-
)
|
|
122
|
-
return null
|
|
123
|
-
}
|
|
124
|
-
|
|
125
|
-
const decimals = destToken.decimals
|
|
126
|
-
if (!decimals) {
|
|
127
|
-
logger.console.warn(
|
|
128
|
-
"[trails-sdk] Missing decimals for destination token, skipping:",
|
|
129
|
-
destToken,
|
|
130
|
-
)
|
|
131
|
-
return null
|
|
132
|
-
}
|
|
133
|
-
|
|
134
|
-
// Try to find this token in user's balances to get the actual balance
|
|
135
|
-
const matchingUserToken = sortedTokens.find((t) => {
|
|
136
|
-
if (t.chainId !== destToken.chainId) return false
|
|
137
|
-
|
|
138
|
-
const isDestNative = destToken.isNativeToken ?? false
|
|
139
|
-
const isUserNative = t.isNativeToken ?? false
|
|
140
|
-
|
|
141
|
-
if (isDestNative && isUserNative) return true
|
|
142
|
-
if (isDestNative || isUserNative) return false
|
|
143
|
-
|
|
144
|
-
return (
|
|
145
|
-
t.contractAddress?.toLowerCase() ===
|
|
146
|
-
destToken.contractAddress?.toLowerCase()
|
|
147
|
-
)
|
|
148
|
-
})
|
|
149
|
-
|
|
150
|
-
const finalDestinationToken = {
|
|
151
|
-
...destToken,
|
|
152
|
-
balance: matchingUserToken?.balance ?? "0",
|
|
153
|
-
balanceUsdFormatted: matchingUserToken?.balanceUsdFormatted ?? "0",
|
|
154
|
-
priceUsd: matchingUserToken?.priceUsd ?? 0,
|
|
155
|
-
decimals,
|
|
156
|
-
}
|
|
157
|
-
|
|
158
|
-
logger.console.log("[trails-sdk] Default destination token selection:", {
|
|
159
|
-
destination: {
|
|
160
|
-
symbol: finalDestinationToken.symbol,
|
|
161
|
-
chainId: finalDestinationToken.chainId,
|
|
162
|
-
hasUserBalance: !!matchingUserToken,
|
|
163
|
-
userBalanceUsd: matchingUserToken?.balanceUsdFormatted ?? "0",
|
|
164
|
-
},
|
|
165
|
-
originChain: originToken.chainId,
|
|
166
|
-
destinationChain: defaultDestChainId,
|
|
167
|
-
})
|
|
168
|
-
|
|
169
|
-
// Store the calculated result in ref for stability
|
|
170
|
-
stableDestTokenRef.current = finalDestinationToken
|
|
171
|
-
|
|
172
|
-
return finalDestinationToken
|
|
173
|
-
}, [originToken, supportedTokens, sortedTokens])
|
|
174
|
-
|
|
175
|
-
return {
|
|
176
|
-
defaultDestinationToken,
|
|
177
|
-
isLoading,
|
|
178
|
-
}
|
|
179
|
-
}
|
|
@@ -1,407 +0,0 @@
|
|
|
1
|
-
import { useMemo, useRef } from "react"
|
|
2
|
-
import { useAccount } from "wagmi"
|
|
3
|
-
import type { Address } from "ox"
|
|
4
|
-
import { useWidgetProps } from "./useWidgetProps.js"
|
|
5
|
-
import { useTargetAmount } from "./useTargetAmount.js"
|
|
6
|
-
import { useTokenBalances } from "../../query/balance.hooks.js"
|
|
7
|
-
import type { Token } from "../../tokens.js"
|
|
8
|
-
import { getChainInfo } from "../../chains.js"
|
|
9
|
-
import { isNativeToken } from "../../utils/address.js"
|
|
10
|
-
import { logger } from "../../logger.js"
|
|
11
|
-
import { zeroAddress } from "viem"
|
|
12
|
-
|
|
13
|
-
const MINIMUM_24H_VOLUME_USD = 1_000_000 // $1M
|
|
14
|
-
const MINIMUM_BALANCE_USD_FOR_PRIORITIZATION = 1 // $1
|
|
15
|
-
|
|
16
|
-
function getToken24hVolume(_token: Token): number {
|
|
17
|
-
// Note: price24hVol is not in Token, so we return 0
|
|
18
|
-
// This can be added to Token later if needed
|
|
19
|
-
return 0
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
function tokenMatches(
|
|
23
|
-
token: Token,
|
|
24
|
-
targetSymbolOrAddress: string,
|
|
25
|
-
targetChainId?: number,
|
|
26
|
-
): boolean {
|
|
27
|
-
const tokenChainId = token.chainId || 0
|
|
28
|
-
const tokenIsNative = token.isNativeToken ?? false
|
|
29
|
-
const contractAddress = token.contractAddress
|
|
30
|
-
const symbol = token.symbol
|
|
31
|
-
|
|
32
|
-
// Check chain match first
|
|
33
|
-
const chainMatches = !targetChainId || tokenChainId === targetChainId
|
|
34
|
-
if (!chainMatches) return false
|
|
35
|
-
|
|
36
|
-
// Check if target is an address (starts with 0x and is longer than 5 chars)
|
|
37
|
-
const isTargetAddress =
|
|
38
|
-
targetSymbolOrAddress.startsWith("0x") && targetSymbolOrAddress.length > 5
|
|
39
|
-
|
|
40
|
-
if (tokenIsNative) {
|
|
41
|
-
const chainInfo = getChainInfo(tokenChainId)
|
|
42
|
-
const nativeSymbol = chainInfo?.nativeCurrency.symbol || "Unknown"
|
|
43
|
-
|
|
44
|
-
// For native tokens, check if target is zero address or matches symbol
|
|
45
|
-
if (isTargetAddress) {
|
|
46
|
-
return isNativeToken(targetSymbolOrAddress)
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
return nativeSymbol.toUpperCase() === targetSymbolOrAddress.toUpperCase()
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
// For non-native tokens, check both address and symbol
|
|
53
|
-
if (isTargetAddress) {
|
|
54
|
-
return (
|
|
55
|
-
contractAddress?.toLowerCase() === targetSymbolOrAddress.toLowerCase()
|
|
56
|
-
)
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
return symbol?.toUpperCase() === targetSymbolOrAddress.toUpperCase()
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
/**
|
|
63
|
-
* Hook for intelligent default origin token selection in 0xtrails widget.
|
|
64
|
-
*
|
|
65
|
-
* When toToken and toChainId are specified (user wants specific destination):
|
|
66
|
-
* 1. Same-chain, same-token with balance >= targetAmountUsd (no swap, no bridge) - FASTEST
|
|
67
|
-
* 2. Same-chain, different-token with balance >= targetAmountUsd (swap only) - FAST
|
|
68
|
-
* - Ordered by: 24h volume > $1M first, then highest balance USD
|
|
69
|
-
* 3. Different-chain, same-token with balance >= targetAmountUsd (bridge only) - SLOWER
|
|
70
|
-
* - Ordered by: 24h volume > $1M first, then highest balance USD
|
|
71
|
-
* 4. Different-chain, different-token with balance >= targetAmountUsd (swap + bridge) - SLOWEST
|
|
72
|
-
* - Ordered by: 24h volume > $1M first, then highest balance USD
|
|
73
|
-
* 5. Fallback: Any token with balance > 0 if none can cover target amount
|
|
74
|
-
*
|
|
75
|
-
* When toToken/toChainId NOT specified (general send/bridge):
|
|
76
|
-
* - Select highest balance token with 24h volume > $1M
|
|
77
|
-
* - Fallback to any token with balance > 0
|
|
78
|
-
*
|
|
79
|
-
* @returns defaultOriginToken - Best origin token that can cover targetAmountUsd (if specified)
|
|
80
|
-
* @returns isLoading - Whether token data is still loading
|
|
81
|
-
*/
|
|
82
|
-
export function useDefaultOriginToken() {
|
|
83
|
-
const { toToken, toChainId, fromToken, fromChainId } = useWidgetProps()
|
|
84
|
-
const { targetAmountUsd } = useTargetAmount()
|
|
85
|
-
const { address } = useAccount()
|
|
86
|
-
|
|
87
|
-
const { sortedTokens, isLoadingSortedTokens } = useTokenBalances(
|
|
88
|
-
address as Address.Address,
|
|
89
|
-
undefined,
|
|
90
|
-
{ refetchInterval: false },
|
|
91
|
-
)
|
|
92
|
-
|
|
93
|
-
const isLoading = isLoadingSortedTokens
|
|
94
|
-
|
|
95
|
-
// Use a ref to prevent unnecessary recalculations on balance-only updates
|
|
96
|
-
const stableTokenRef = useRef<Token | null>(null)
|
|
97
|
-
const lastTokenListKey = useRef<string>("")
|
|
98
|
-
|
|
99
|
-
const defaultOriginToken = useMemo(() => {
|
|
100
|
-
if (!sortedTokens?.length) {
|
|
101
|
-
stableTokenRef.current = null
|
|
102
|
-
return null
|
|
103
|
-
}
|
|
104
|
-
|
|
105
|
-
// Create a key based on available tokens (not their balances)
|
|
106
|
-
const tokenListKey = sortedTokens
|
|
107
|
-
.map((t) => `${t.symbol}-${t.chainId}-${t.contractAddress || "native"}`)
|
|
108
|
-
.join(",")
|
|
109
|
-
|
|
110
|
-
// Only recalculate if the token list has actually changed (not just balances)
|
|
111
|
-
// or if meaningful selection parameters have changed
|
|
112
|
-
const shouldRecalculate =
|
|
113
|
-
tokenListKey !== lastTokenListKey.current || !stableTokenRef.current
|
|
114
|
-
|
|
115
|
-
if (!shouldRecalculate && stableTokenRef.current) {
|
|
116
|
-
return stableTokenRef.current
|
|
117
|
-
}
|
|
118
|
-
|
|
119
|
-
lastTokenListKey.current = tokenListKey
|
|
120
|
-
|
|
121
|
-
// Helper to ensure Token has required properties set
|
|
122
|
-
const ensureToken = (token: Token): Token | null => {
|
|
123
|
-
const isNative = token.isNativeToken ?? false
|
|
124
|
-
const chainInfo = getChainInfo(token.chainId || 0)
|
|
125
|
-
|
|
126
|
-
if (isNative) {
|
|
127
|
-
// Native tokens - ensure chain info is set
|
|
128
|
-
const decimals = chainInfo?.nativeCurrency.decimals ?? 18
|
|
129
|
-
|
|
130
|
-
return {
|
|
131
|
-
...token,
|
|
132
|
-
name: token.name || chainInfo?.nativeCurrency.name || "Unknown",
|
|
133
|
-
symbol: token.symbol || chainInfo?.nativeCurrency.symbol || "Unknown",
|
|
134
|
-
balance: token.balance ?? "0",
|
|
135
|
-
imageUrl: token.imageUrl || "",
|
|
136
|
-
chainId: token.chainId ?? 0,
|
|
137
|
-
contractAddress: zeroAddress,
|
|
138
|
-
balanceUsdFormatted: token.balanceUsdFormatted ?? "0",
|
|
139
|
-
priceUsd: token.priceUsd ?? 0,
|
|
140
|
-
decimals,
|
|
141
|
-
isNativeToken: true,
|
|
142
|
-
}
|
|
143
|
-
} else {
|
|
144
|
-
// Non-native tokens - ensure required properties are set
|
|
145
|
-
if (!token.decimals) {
|
|
146
|
-
logger.console.warn("[trails-sdk] Missing decimals for token:", {
|
|
147
|
-
symbol: token.symbol,
|
|
148
|
-
chainId: token.chainId,
|
|
149
|
-
})
|
|
150
|
-
return null // Return null instead of throwing
|
|
151
|
-
}
|
|
152
|
-
|
|
153
|
-
return {
|
|
154
|
-
...token,
|
|
155
|
-
name: token.name ?? "Unknown Token",
|
|
156
|
-
symbol: token.symbol ?? "???",
|
|
157
|
-
balance: token.balance ?? "0",
|
|
158
|
-
imageUrl: token.imageUrl || "",
|
|
159
|
-
chainId: token.chainId ?? 0,
|
|
160
|
-
balanceUsdFormatted: token.balanceUsdFormatted ?? "0",
|
|
161
|
-
priceUsd: token.priceUsd ?? 0,
|
|
162
|
-
}
|
|
163
|
-
}
|
|
164
|
-
}
|
|
165
|
-
|
|
166
|
-
// First priority: Check if fromToken and fromChainId are specified
|
|
167
|
-
if (fromToken && fromChainId) {
|
|
168
|
-
const fromChainIdNum =
|
|
169
|
-
typeof fromChainId === "string" ? Number(fromChainId) : fromChainId
|
|
170
|
-
const matchingToken = sortedTokens.find((token) =>
|
|
171
|
-
tokenMatches(token, fromToken, fromChainIdNum),
|
|
172
|
-
)
|
|
173
|
-
|
|
174
|
-
if (matchingToken) {
|
|
175
|
-
logger.console.log(
|
|
176
|
-
"[trails-sdk] Found matching fromToken for default origin selection",
|
|
177
|
-
{ symbol: matchingToken.symbol, chainId: matchingToken.chainId },
|
|
178
|
-
)
|
|
179
|
-
const ensured = ensureToken(matchingToken)
|
|
180
|
-
if (ensured) {
|
|
181
|
-
stableTokenRef.current = ensured
|
|
182
|
-
return ensured
|
|
183
|
-
}
|
|
184
|
-
}
|
|
185
|
-
}
|
|
186
|
-
|
|
187
|
-
// Filter tokens with balance > 0
|
|
188
|
-
const tokensWithBalance = sortedTokens.filter((token) => {
|
|
189
|
-
const balanceUsd = token.balanceUsd ?? 0
|
|
190
|
-
return balanceUsd > 0
|
|
191
|
-
})
|
|
192
|
-
|
|
193
|
-
if (tokensWithBalance.length === 0) {
|
|
194
|
-
logger.console.log(
|
|
195
|
-
"[trails-sdk] No tokens with balance found for default origin selection",
|
|
196
|
-
)
|
|
197
|
-
return null
|
|
198
|
-
}
|
|
199
|
-
|
|
200
|
-
// Helper to sort tokens by balance USD and volume
|
|
201
|
-
const sortTokensByBalanceAndVolume = (
|
|
202
|
-
tokens: Token[],
|
|
203
|
-
targetAmount?: number,
|
|
204
|
-
) => {
|
|
205
|
-
const sortedTokens = [...tokens].sort((a, b) => {
|
|
206
|
-
const aVolume = getToken24hVolume(a)
|
|
207
|
-
const bVolume = getToken24hVolume(b)
|
|
208
|
-
const aHighVolume = aVolume >= MINIMUM_24H_VOLUME_USD
|
|
209
|
-
const bHighVolume = bVolume >= MINIMUM_24H_VOLUME_USD
|
|
210
|
-
|
|
211
|
-
// Prioritize high volume tokens first
|
|
212
|
-
if (aHighVolume && !bHighVolume) return -1
|
|
213
|
-
if (!aHighVolume && bHighVolume) return 1
|
|
214
|
-
|
|
215
|
-
// Then sort by balance USD (highest first)
|
|
216
|
-
const aBalanceUsd = a.balanceUsd ?? 0
|
|
217
|
-
const bBalanceUsd = b.balanceUsd ?? 0
|
|
218
|
-
return bBalanceUsd - aBalanceUsd
|
|
219
|
-
})
|
|
220
|
-
|
|
221
|
-
// After initial sorting, prioritize USDC and native tokens at the top
|
|
222
|
-
const effectiveTargetAmount =
|
|
223
|
-
targetAmount ?? MINIMUM_BALANCE_USD_FOR_PRIORITIZATION
|
|
224
|
-
|
|
225
|
-
const prioritizedTokens: Token[] = []
|
|
226
|
-
const remainingTokens: Token[] = []
|
|
227
|
-
|
|
228
|
-
// Separate tokens into prioritized and remaining
|
|
229
|
-
for (const token of sortedTokens) {
|
|
230
|
-
const balanceUsd = token.balanceUsd ?? 0
|
|
231
|
-
const isNative = token.isNativeToken ?? false
|
|
232
|
-
const isUSDC = !isNative && token.symbol?.toUpperCase() === "USDC"
|
|
233
|
-
|
|
234
|
-
if ((isUSDC || isNative) && balanceUsd >= effectiveTargetAmount) {
|
|
235
|
-
prioritizedTokens.push(token)
|
|
236
|
-
} else {
|
|
237
|
-
remainingTokens.push(token)
|
|
238
|
-
}
|
|
239
|
-
}
|
|
240
|
-
|
|
241
|
-
// Sort prioritized tokens: USDC first, then native tokens
|
|
242
|
-
prioritizedTokens.sort((a, b) => {
|
|
243
|
-
const aIsNative = a.isNativeToken ?? false
|
|
244
|
-
const bIsNative = b.isNativeToken ?? false
|
|
245
|
-
const aIsUSDC = !aIsNative && a.symbol?.toUpperCase() === "USDC"
|
|
246
|
-
const bIsUSDC = !bIsNative && b.symbol?.toUpperCase() === "USDC"
|
|
247
|
-
|
|
248
|
-
// USDC comes first
|
|
249
|
-
if (aIsUSDC && !bIsUSDC) return -1
|
|
250
|
-
if (!aIsUSDC && bIsUSDC) return 1
|
|
251
|
-
|
|
252
|
-
// Then native tokens
|
|
253
|
-
if (aIsNative && !bIsNative) return -1
|
|
254
|
-
if (!aIsNative && bIsNative) return 1
|
|
255
|
-
|
|
256
|
-
// Within same type, sort by balance USD (highest first)
|
|
257
|
-
const aBalanceUsd = a.balanceUsd ?? 0
|
|
258
|
-
const bBalanceUsd = b.balanceUsd ?? 0
|
|
259
|
-
return bBalanceUsd - aBalanceUsd
|
|
260
|
-
})
|
|
261
|
-
|
|
262
|
-
// Return prioritized tokens first, then remaining tokens
|
|
263
|
-
return [...prioritizedTokens, ...remainingTokens]
|
|
264
|
-
}
|
|
265
|
-
|
|
266
|
-
// Find the best origin token using intelligent selection
|
|
267
|
-
let bestOriginToken: Token | null = null
|
|
268
|
-
|
|
269
|
-
// When toToken and toChainId are specified (user wants specific destination)
|
|
270
|
-
if (toToken && toChainId) {
|
|
271
|
-
const targetChainId = Number(toChainId)
|
|
272
|
-
|
|
273
|
-
// Use targetAmountUsd if available, otherwise use a minimal threshold when toToken is set
|
|
274
|
-
const effectiveTargetAmount = targetAmountUsd ?? 0.01
|
|
275
|
-
|
|
276
|
-
// Filter tokens that can cover the target amount
|
|
277
|
-
const tokensWithSufficientBalance = tokensWithBalance.filter(
|
|
278
|
-
(token) => (token.balanceUsd ?? 0) >= effectiveTargetAmount,
|
|
279
|
-
)
|
|
280
|
-
|
|
281
|
-
// Priority 1: Same-chain, same-token (no swap, no bridge) - FASTEST
|
|
282
|
-
const sameChainSameToken = tokensWithSufficientBalance.find((token) =>
|
|
283
|
-
tokenMatches(token, toToken, targetChainId),
|
|
284
|
-
)
|
|
285
|
-
|
|
286
|
-
if (sameChainSameToken) {
|
|
287
|
-
bestOriginToken = sameChainSameToken
|
|
288
|
-
logger.console.log(
|
|
289
|
-
"[trails-sdk] Selected same-chain, same-token (fastest)",
|
|
290
|
-
)
|
|
291
|
-
}
|
|
292
|
-
|
|
293
|
-
// Priority 2: Same-chain, different-token (swap only, no bridge) - FAST
|
|
294
|
-
if (!bestOriginToken) {
|
|
295
|
-
const sameChainTokens = tokensWithSufficientBalance.filter(
|
|
296
|
-
(token) => token.chainId === targetChainId,
|
|
297
|
-
)
|
|
298
|
-
const sortedSameChain = sortTokensByBalanceAndVolume(
|
|
299
|
-
sameChainTokens,
|
|
300
|
-
effectiveTargetAmount,
|
|
301
|
-
)
|
|
302
|
-
bestOriginToken = sortedSameChain[0] ?? null
|
|
303
|
-
if (bestOriginToken) {
|
|
304
|
-
logger.console.log(
|
|
305
|
-
"[trails-sdk] Selected same-chain, different-token (fast)",
|
|
306
|
-
)
|
|
307
|
-
}
|
|
308
|
-
}
|
|
309
|
-
|
|
310
|
-
// Priority 3: Different-chain, same-token (bridge only, no swap) - SLOWER
|
|
311
|
-
if (!bestOriginToken) {
|
|
312
|
-
const sameTokenDiffChain = tokensWithSufficientBalance.filter(
|
|
313
|
-
(token) =>
|
|
314
|
-
tokenMatches(token, toToken) && token.chainId !== targetChainId,
|
|
315
|
-
)
|
|
316
|
-
const sortedSameToken = sortTokensByBalanceAndVolume(
|
|
317
|
-
sameTokenDiffChain,
|
|
318
|
-
effectiveTargetAmount,
|
|
319
|
-
)
|
|
320
|
-
bestOriginToken = sortedSameToken[0] ?? null
|
|
321
|
-
if (bestOriginToken) {
|
|
322
|
-
logger.console.log(
|
|
323
|
-
"[trails-sdk] Selected different-chain, same-token (slower)",
|
|
324
|
-
)
|
|
325
|
-
}
|
|
326
|
-
}
|
|
327
|
-
|
|
328
|
-
// Priority 4: Different-chain, different-token (swap + bridge) - SLOWEST
|
|
329
|
-
if (!bestOriginToken) {
|
|
330
|
-
const diffChainDiffToken = tokensWithSufficientBalance.filter(
|
|
331
|
-
(token) => token.chainId !== targetChainId,
|
|
332
|
-
)
|
|
333
|
-
const sortedDiffChainDiffToken = sortTokensByBalanceAndVolume(
|
|
334
|
-
diffChainDiffToken,
|
|
335
|
-
effectiveTargetAmount,
|
|
336
|
-
)
|
|
337
|
-
bestOriginToken = sortedDiffChainDiffToken[0] ?? null
|
|
338
|
-
if (bestOriginToken) {
|
|
339
|
-
logger.console.log(
|
|
340
|
-
"[trails-sdk] Selected different-chain, different-token (slowest)",
|
|
341
|
-
)
|
|
342
|
-
}
|
|
343
|
-
}
|
|
344
|
-
|
|
345
|
-
// Fallback: If no token can cover target amount, use any token (sorted by balance/volume)
|
|
346
|
-
if (!bestOriginToken) {
|
|
347
|
-
const allTokensSorted = sortTokensByBalanceAndVolume(
|
|
348
|
-
tokensWithBalance,
|
|
349
|
-
effectiveTargetAmount,
|
|
350
|
-
)
|
|
351
|
-
bestOriginToken = allTokensSorted[0] ?? null
|
|
352
|
-
logger.console.log(
|
|
353
|
-
"[trails-sdk] Fallback: No token can cover target amount, using highest balance token",
|
|
354
|
-
)
|
|
355
|
-
}
|
|
356
|
-
} else {
|
|
357
|
-
// When no specific destination is set, select highest value token with good liquidity
|
|
358
|
-
const sortedByBalanceAndVolume = sortTokensByBalanceAndVolume(
|
|
359
|
-
tokensWithBalance,
|
|
360
|
-
MINIMUM_BALANCE_USD_FOR_PRIORITIZATION,
|
|
361
|
-
)
|
|
362
|
-
bestOriginToken = sortedByBalanceAndVolume[0] ?? null
|
|
363
|
-
logger.console.log(
|
|
364
|
-
"[trails-sdk] No destination specified, selected highest value token with best liquidity",
|
|
365
|
-
)
|
|
366
|
-
}
|
|
367
|
-
|
|
368
|
-
if (!bestOriginToken) {
|
|
369
|
-
return null
|
|
370
|
-
}
|
|
371
|
-
|
|
372
|
-
const originToken = ensureToken(bestOriginToken)
|
|
373
|
-
|
|
374
|
-
logger.console.log("[trails-sdk] Default origin token selection:", {
|
|
375
|
-
origin: originToken
|
|
376
|
-
? {
|
|
377
|
-
symbol: originToken.symbol,
|
|
378
|
-
chainId: originToken.chainId,
|
|
379
|
-
balanceUsd: originToken.balanceUsdFormatted,
|
|
380
|
-
volume24h: getToken24hVolume(bestOriginToken),
|
|
381
|
-
}
|
|
382
|
-
: null,
|
|
383
|
-
toToken,
|
|
384
|
-
toChainId,
|
|
385
|
-
targetAmountUsd,
|
|
386
|
-
effectiveTargetAmount:
|
|
387
|
-
toToken && toChainId ? (targetAmountUsd ?? 0.01) : null,
|
|
388
|
-
})
|
|
389
|
-
|
|
390
|
-
// Store the calculated result in ref for stability
|
|
391
|
-
stableTokenRef.current = originToken
|
|
392
|
-
|
|
393
|
-
return originToken
|
|
394
|
-
}, [
|
|
395
|
-
toToken,
|
|
396
|
-
toChainId,
|
|
397
|
-
sortedTokens,
|
|
398
|
-
targetAmountUsd,
|
|
399
|
-
fromToken,
|
|
400
|
-
fromChainId,
|
|
401
|
-
])
|
|
402
|
-
|
|
403
|
-
return {
|
|
404
|
-
defaultOriginToken,
|
|
405
|
-
isLoading,
|
|
406
|
-
}
|
|
407
|
-
}
|
|
@@ -1,118 +0,0 @@
|
|
|
1
|
-
import { useEffect, useState } from "react"
|
|
2
|
-
import { SECOND_MS } from "../../utils/time.js"
|
|
3
|
-
import { checkAccountBalance } from "../../transactionIntent/utils/balanceChecker.js"
|
|
4
|
-
import { getChainRpcClient } from "../../chains.js"
|
|
5
|
-
import type { Account } from "viem"
|
|
6
|
-
import { logger } from "../../logger.js"
|
|
7
|
-
export interface UseDepositMonitorParams {
|
|
8
|
-
chainId?: number
|
|
9
|
-
depositAddress?: string
|
|
10
|
-
tokenAddress?: string
|
|
11
|
-
requiredAmount?: string
|
|
12
|
-
enabled?: boolean
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
export interface UseDepositMonitorReturn {
|
|
16
|
-
hasSufficientDeposit: boolean
|
|
17
|
-
depositBalance: string | null
|
|
18
|
-
depositBalanceFormatted: string | null
|
|
19
|
-
percentageComplete: number
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
/**
|
|
23
|
-
* Hook to monitor deposits at a specific address and check if sufficient balance is available.
|
|
24
|
-
* Uses current balance only. External funding flows are committed/executed
|
|
25
|
-
* before this hook is used, so monitoring is strictly for progress and UI state.
|
|
26
|
-
*/
|
|
27
|
-
export function useDepositMonitor({
|
|
28
|
-
chainId,
|
|
29
|
-
depositAddress,
|
|
30
|
-
tokenAddress,
|
|
31
|
-
requiredAmount,
|
|
32
|
-
enabled = true,
|
|
33
|
-
}: UseDepositMonitorParams): UseDepositMonitorReturn {
|
|
34
|
-
const [hasSufficientDeposit, setHasSufficientDeposit] = useState(false)
|
|
35
|
-
const [depositBalance, setDepositBalance] = useState<string | null>(null)
|
|
36
|
-
const [depositBalanceFormatted, setDepositBalanceFormatted] = useState<
|
|
37
|
-
string | null
|
|
38
|
-
>(null)
|
|
39
|
-
const [percentageComplete, setPercentageComplete] = useState(0)
|
|
40
|
-
|
|
41
|
-
useEffect(() => {
|
|
42
|
-
if (
|
|
43
|
-
!enabled ||
|
|
44
|
-
!chainId ||
|
|
45
|
-
!depositAddress ||
|
|
46
|
-
!tokenAddress ||
|
|
47
|
-
!requiredAmount
|
|
48
|
-
) {
|
|
49
|
-
return
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
const checkBalance = async () => {
|
|
53
|
-
try {
|
|
54
|
-
const publicClient = getChainRpcClient(chainId)
|
|
55
|
-
if (!publicClient) {
|
|
56
|
-
logger.console.warn(
|
|
57
|
-
"[useDepositMonitor] No public client available for chain",
|
|
58
|
-
chainId,
|
|
59
|
-
)
|
|
60
|
-
return
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
const balanceCheck = await checkAccountBalance({
|
|
64
|
-
account: {
|
|
65
|
-
address: depositAddress as `0x${string}`,
|
|
66
|
-
} as Account,
|
|
67
|
-
tokenAddress,
|
|
68
|
-
depositAmount: requiredAmount,
|
|
69
|
-
publicClient,
|
|
70
|
-
})
|
|
71
|
-
|
|
72
|
-
setHasSufficientDeposit(balanceCheck.hasEnoughBalance)
|
|
73
|
-
setDepositBalance(balanceCheck.balance?.toString() || null)
|
|
74
|
-
setDepositBalanceFormatted(balanceCheck.balanceFormatted)
|
|
75
|
-
|
|
76
|
-
const percentage =
|
|
77
|
-
balanceCheck.balance && balanceCheck.requiredAmount
|
|
78
|
-
? (Number(balanceCheck.balance) /
|
|
79
|
-
Number(balanceCheck.requiredAmount)) *
|
|
80
|
-
100
|
|
81
|
-
: 0
|
|
82
|
-
setPercentageComplete(Math.min(percentage, 100))
|
|
83
|
-
|
|
84
|
-
logger.console.log("[useDepositMonitor] Balance check result", {
|
|
85
|
-
depositAddress,
|
|
86
|
-
hasEnoughBalance: balanceCheck.hasEnoughBalance,
|
|
87
|
-
balance: balanceCheck.balanceFormatted,
|
|
88
|
-
required: balanceCheck.requiredAmountFormatted,
|
|
89
|
-
percentComplete: `${(
|
|
90
|
-
(Number(balanceCheck.balance) /
|
|
91
|
-
Number(balanceCheck.requiredAmount)) *
|
|
92
|
-
100
|
|
93
|
-
).toFixed(2)}%`,
|
|
94
|
-
})
|
|
95
|
-
} catch (error) {
|
|
96
|
-
logger.console.error(
|
|
97
|
-
"[useDepositMonitor] Error checking balance",
|
|
98
|
-
error,
|
|
99
|
-
)
|
|
100
|
-
}
|
|
101
|
-
}
|
|
102
|
-
|
|
103
|
-
// Check balance immediately
|
|
104
|
-
checkBalance()
|
|
105
|
-
|
|
106
|
-
// Set up polling interval for balance checks
|
|
107
|
-
const interval = setInterval(checkBalance, 15 * SECOND_MS) // Check every 15 seconds
|
|
108
|
-
|
|
109
|
-
return () => clearInterval(interval)
|
|
110
|
-
}, [enabled, chainId, depositAddress, tokenAddress, requiredAmount])
|
|
111
|
-
|
|
112
|
-
return {
|
|
113
|
-
hasSufficientDeposit,
|
|
114
|
-
depositBalance,
|
|
115
|
-
depositBalanceFormatted,
|
|
116
|
-
percentageComplete,
|
|
117
|
-
}
|
|
118
|
-
}
|