@relayprotocol/relay-kit-ui 10.0.0 → 11.0.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/_cjs/src/components/common/CustomAddressModal.js +18 -8
- package/_cjs/src/components/common/CustomAddressModal.js.map +1 -1
- package/_cjs/src/components/common/RefundReason.js +106 -3
- package/_cjs/src/components/common/RefundReason.js.map +1 -1
- package/_cjs/src/components/common/TokenSelector/PaymentMethod.js +9 -9
- package/_cjs/src/components/common/TokenSelector/PaymentMethod.js.map +1 -1
- package/_cjs/src/components/common/TokenSelector/TokenSelector.js +8 -8
- package/_cjs/src/components/common/TokenSelector/TokenSelector.js.map +1 -1
- package/_cjs/src/components/primitives/ChainIcon.js +2 -1
- package/_cjs/src/components/primitives/ChainIcon.js.map +1 -1
- package/_cjs/src/components/primitives/ChainTokenIcon.js +6 -2
- package/_cjs/src/components/primitives/ChainTokenIcon.js.map +1 -1
- package/_cjs/src/components/widgets/OnrampWidget/widget/index.js +1 -1
- package/_cjs/src/components/widgets/OnrampWidget/widget/index.js.map +1 -1
- package/_cjs/src/components/widgets/SwapWidgetRenderer.js +23 -42
- package/_cjs/src/components/widgets/SwapWidgetRenderer.js.map +1 -1
- package/_cjs/src/components/widgets/WidgetContainer.js +1 -1
- package/_cjs/src/components/widgets/WidgetContainer.js.map +1 -1
- package/_cjs/src/constants/events.js +2 -1
- package/_cjs/src/constants/events.js.map +1 -1
- package/_cjs/src/constants/walletCompatibility.js +3 -1
- package/_cjs/src/constants/walletCompatibility.js.map +1 -1
- package/_cjs/src/hooks/index.js +7 -3
- package/_cjs/src/hooks/index.js.map +1 -1
- package/_cjs/src/hooks/useCodexBalances.js +305 -0
- package/_cjs/src/hooks/useCodexBalances.js.map +1 -0
- package/_cjs/src/hooks/useCurrencyBalance.js +18 -74
- package/_cjs/src/hooks/useCurrencyBalance.js.map +1 -1
- package/_cjs/src/hooks/useEnhancedTokensList.js.map +1 -1
- package/_cjs/src/hooks/useKnownTokenContract.js +45 -0
- package/_cjs/src/hooks/useKnownTokenContract.js.map +1 -0
- package/_cjs/src/hooks/useMultiWalletBalances.js +19 -37
- package/_cjs/src/hooks/useMultiWalletBalances.js.map +1 -1
- package/_cjs/src/hooks/useSolanaBalance.js +60 -0
- package/_cjs/src/hooks/useSolanaBalance.js.map +1 -0
- package/_cjs/src/providers/RelayKitProvider.js +1 -1
- package/_cjs/src/providers/RelayKitProvider.js.map +1 -1
- package/_cjs/src/version.js +1 -1
- package/_cjs/src/version.js.map +1 -1
- package/_cjs/tsconfig.build.tsbuildinfo +1 -1
- package/_esm/src/components/common/CustomAddressModal.js +24 -10
- package/_esm/src/components/common/CustomAddressModal.js.map +1 -1
- package/_esm/src/components/common/RefundReason.js +107 -4
- package/_esm/src/components/common/RefundReason.js.map +1 -1
- package/_esm/src/components/common/TokenSelector/PaymentMethod.js +9 -9
- package/_esm/src/components/common/TokenSelector/PaymentMethod.js.map +1 -1
- package/_esm/src/components/common/TokenSelector/TokenSelector.js +10 -10
- package/_esm/src/components/common/TokenSelector/TokenSelector.js.map +1 -1
- package/_esm/src/components/primitives/ChainIcon.js +3 -2
- package/_esm/src/components/primitives/ChainIcon.js.map +1 -1
- package/_esm/src/components/primitives/ChainTokenIcon.js +6 -3
- package/_esm/src/components/primitives/ChainTokenIcon.js.map +1 -1
- package/_esm/src/components/widgets/OnrampWidget/widget/index.js +1 -1
- package/_esm/src/components/widgets/OnrampWidget/widget/index.js.map +1 -1
- package/_esm/src/components/widgets/SwapWidgetRenderer.js +28 -46
- package/_esm/src/components/widgets/SwapWidgetRenderer.js.map +1 -1
- package/_esm/src/components/widgets/WidgetContainer.js +1 -1
- package/_esm/src/components/widgets/WidgetContainer.js.map +1 -1
- package/_esm/src/constants/events.js +2 -1
- package/_esm/src/constants/events.js.map +1 -1
- package/_esm/src/constants/walletCompatibility.js +3 -1
- package/_esm/src/constants/walletCompatibility.js.map +1 -1
- package/_esm/src/hooks/index.js +4 -2
- package/_esm/src/hooks/index.js.map +1 -1
- package/_esm/src/hooks/useCodexBalances.js +311 -0
- package/_esm/src/hooks/useCodexBalances.js.map +1 -0
- package/_esm/src/hooks/useCurrencyBalance.js +18 -74
- package/_esm/src/hooks/useCurrencyBalance.js.map +1 -1
- package/_esm/src/hooks/useEnhancedTokensList.js.map +1 -1
- package/_esm/src/hooks/useKnownTokenContract.js +52 -0
- package/_esm/src/hooks/useKnownTokenContract.js.map +1 -0
- package/_esm/src/hooks/useMultiWalletBalances.js +18 -39
- package/_esm/src/hooks/useMultiWalletBalances.js.map +1 -1
- package/_esm/src/hooks/useSolanaBalance.js +58 -0
- package/_esm/src/hooks/useSolanaBalance.js.map +1 -0
- package/_esm/src/providers/RelayKitProvider.js +1 -1
- package/_esm/src/providers/RelayKitProvider.js.map +1 -1
- package/_esm/src/version.js +1 -1
- package/_esm/src/version.js.map +1 -1
- package/_esm/tsconfig.build.tsbuildinfo +1 -1
- package/_types/src/components/common/CustomAddressModal.d.ts.map +1 -1
- package/_types/src/components/common/RefundReason.d.ts.map +1 -1
- package/_types/src/components/common/TokenSelector/PaymentMethod.d.ts.map +1 -1
- package/_types/src/components/common/TokenSelector/TokenSelector.d.ts.map +1 -1
- package/_types/src/components/primitives/ChainIcon.d.ts.map +1 -1
- package/_types/src/components/primitives/ChainTokenIcon.d.ts.map +1 -1
- package/_types/src/components/widgets/OnrampWidget/widget/index.d.ts.map +1 -1
- package/_types/src/components/widgets/SwapWidgetRenderer.d.ts.map +1 -1
- package/_types/src/components/widgets/WidgetContainer.d.ts.map +1 -1
- package/_types/src/constants/events.d.ts +1 -0
- package/_types/src/constants/events.d.ts.map +1 -1
- package/_types/src/constants/walletCompatibility.d.ts.map +1 -1
- package/_types/src/hooks/index.d.ts +4 -2
- package/_types/src/hooks/index.d.ts.map +1 -1
- package/_types/src/hooks/useCodexBalances.d.ts +45 -0
- package/_types/src/hooks/useCodexBalances.d.ts.map +1 -0
- package/_types/src/hooks/useCurrencyBalance.d.ts +0 -1
- package/_types/src/hooks/useCurrencyBalance.d.ts.map +1 -1
- package/_types/src/hooks/useEnhancedTokensList.d.ts +1 -1
- package/_types/src/hooks/useEnhancedTokensList.d.ts.map +1 -1
- package/_types/src/hooks/useKnownTokenContract.d.ts +35 -0
- package/_types/src/hooks/useKnownTokenContract.d.ts.map +1 -0
- package/_types/src/hooks/useMultiWalletBalances.d.ts +3 -12
- package/_types/src/hooks/useMultiWalletBalances.d.ts.map +1 -1
- package/_types/src/hooks/{useEclipseBalance.d.ts → useSolanaBalance.d.ts} +2 -2
- package/_types/src/hooks/useSolanaBalance.d.ts.map +1 -0
- package/_types/src/providers/RelayKitProvider.d.ts +3 -3
- package/_types/src/providers/RelayKitProvider.d.ts.map +1 -1
- package/_types/src/version.d.ts +1 -1
- package/_types/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +3 -3
- package/_cjs/src/hooks/useDuneBalances.js +0 -100
- package/_cjs/src/hooks/useDuneBalances.js.map +0 -1
- package/_cjs/src/hooks/useEclipseBalance.js +0 -47
- package/_cjs/src/hooks/useEclipseBalance.js.map +0 -1
- package/_esm/src/hooks/useDuneBalances.js +0 -102
- package/_esm/src/hooks/useDuneBalances.js.map +0 -1
- package/_esm/src/hooks/useEclipseBalance.js +0 -44
- package/_esm/src/hooks/useEclipseBalance.js.map +0 -1
- package/_types/src/hooks/useDuneBalances.d.ts +0 -25
- package/_types/src/hooks/useDuneBalances.d.ts.map +0 -1
- package/_types/src/hooks/useEclipseBalance.d.ts.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SwapWidgetRenderer.js","sourceRoot":"","sources":["../../../../src/components/widgets/SwapWidgetRenderer.tsx"],"names":[],"mappings":"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","sourcesContent":["import type { Dispatch, FC, ReactNode, SetStateAction } from 'react'\nimport { useCallback, useContext, useEffect, useMemo, useState } from 'react'\nimport {\n useCurrencyBalance,\n useRelayClient,\n useDebounceState,\n useWalletAddress,\n useDisconnected,\n usePreviousValueChange,\n useIsWalletCompatible,\n useFallbackState,\n useGasTopUpRequired,\n useExplicitDeposit,\n useDisplayName,\n useLighterAccount\n} from '../../hooks/index.js'\nimport type { Address, WalletClient } from 'viem'\nimport { formatUnits, parseUnits } from 'viem'\nimport { useAccount, useWalletClient } from 'wagmi'\nimport { useCapabilities } from 'wagmi/experimental'\nimport type { Token } from '../../types/index.js'\nimport { useQueryClient } from '@tanstack/react-query'\nimport type { ChainVM, Execute } from '@relayprotocol/relay-sdk'\nimport {\n calculatePriceTimeEstimate,\n calculateRelayerFeeProportionUsd,\n extractQuoteId,\n getCurrentStep,\n getSwapEventData,\n isHighRelayerServiceFeeUsd,\n parseFees\n} from '../../utils/quote.js'\nimport { useQuote, useTokenPrice } from '@relayprotocol/relay-kit-hooks'\nimport { EventNames } from '../../constants/events.js'\nimport {\n ProviderOptionsContext,\n useHapticEvent\n} from '../../providers/RelayKitProvider.js'\nimport type { DebouncedState } from 'usehooks-ts'\nimport type { AdaptedWallet } from '@relayprotocol/relay-sdk'\nimport type { LinkedWallet } from '../../types/index.js'\nimport {\n addressWithFallback,\n isValidAddress,\n findSupportedWallet,\n isChainVmTypeSupported\n} from '../../utils/address.js'\nimport { adaptViemWallet } from '@relayprotocol/relay-sdk'\nimport { errorToJSON } from '../../utils/errors.js'\nimport { useSwapButtonCta } from '../../hooks/widget/useSwapButtonCta.js'\nimport { sha256 } from '../../utils/hashing.js'\nimport { get15MinuteInterval } from '../../utils/time.js'\nimport { isLighterAddress } from '../../utils/lighter.js'\nimport type { FeeBreakdown } from '../../types/FeeBreakdown.js'\n\nexport type TradeType = 'EXACT_INPUT' | 'EXPECTED_OUTPUT'\n\ntype SwapWidgetRendererProps = {\n transactionModalOpen: boolean\n setTransactionModalOpen: React.Dispatch<React.SetStateAction<boolean>>\n depositAddressModalOpen: boolean\n children: (props: ChildrenProps) => ReactNode\n fromToken?: Token\n setFromToken?: (token?: Token) => void\n toToken?: Token\n setToToken?: (token?: Token) => void\n defaultToAddress?: Address\n defaultAmount?: string\n defaultTradeType?: TradeType\n slippageTolerance?: string\n context: 'Swap' | 'Deposit' | 'Withdraw'\n wallet?: AdaptedWallet\n linkedWallets?: LinkedWallet[]\n multiWalletSupportEnabled?: boolean\n supportedWalletVMs: Omit<ChainVM, 'hypevm' | 'lvm'>[]\n onConnectWallet?: () => void\n onAnalyticEvent?: (eventName: string, data?: any) => void\n onSwapError?: (error: string, data?: Execute) => void\n}\n\nexport type ChildrenProps = {\n quote?: ReturnType<typeof useQuote>['data']\n steps: Execute['steps'] | null\n setSteps: Dispatch<React.SetStateAction<Execute['steps'] | null>>\n swap: () => void\n transactionModalOpen: boolean\n details: null | Execute['details']\n feeBreakdown: FeeBreakdown | null\n fromToken?: Token\n setFromToken: Dispatch<React.SetStateAction<Token | undefined>>\n toToken?: Token\n setToToken: Dispatch<React.SetStateAction<Token | undefined>>\n swapError: Error | null\n error: Error | null\n toDisplayName?: string\n address?: Address | string\n recipient?: Address | string\n customToAddress?: Address | string\n setCustomToAddress: Dispatch<\n React.SetStateAction<Address | string | undefined>\n >\n tradeType: TradeType\n setTradeType: Dispatch<React.SetStateAction<TradeType>>\n isSameCurrencySameRecipientSwap: boolean\n amountInputValue: string\n debouncedInputAmountValue: string\n setAmountInputValue: (value: string) => void\n debouncedAmountInputControls: DebouncedState<(value: string) => void>\n amountOutputValue: string\n debouncedOutputAmountValue: string\n setAmountOutputValue: (value: string) => void\n debouncedAmountOutputControls: DebouncedState<(value: string) => void>\n toBalance?: bigint\n toBalancePending?: boolean\n fromBalance?: bigint\n fromBalancePending?: boolean\n isFetchingQuote: boolean\n isLoadingToBalance: boolean\n isLoadingFromBalance: boolean\n highRelayerServiceFee: boolean\n relayerFeeProportion: bigint\n hasInsufficientBalance: boolean\n isInsufficientLiquidityError?: boolean\n isCapacityExceededError?: boolean\n isCouldNotExecuteError?: boolean\n ctaCopy: string\n isFromNative: boolean\n slippageTolerance?: string\n timeEstimate?: { time: number; formattedTime: string }\n isSvmSwap: boolean\n isBvmSwap: boolean\n isValidFromAddress: boolean\n isValidToAddress: boolean\n supportedWalletVMs: Omit<ChainVM, 'hypevm' | 'lvm'>[]\n fromChainWalletVMSupported: boolean\n toChainWalletVMSupported: boolean\n isRecipientLinked?: boolean\n recipientWalletSupportsChain?: boolean\n gasTopUpEnabled: boolean\n setGasTopUpEnabled: Dispatch<React.SetStateAction<boolean>>\n gasTopUpBalance?: bigint\n gasTopUpRequired: boolean\n gasTopUpAmount?: bigint\n gasTopUpAmountUsd?: string\n quoteInProgress: null | Execute\n setQuoteInProgress: Dispatch<React.SetStateAction<null | Execute>>\n linkedWallet?: LinkedWallet\n quoteParameters?: Parameters<typeof useQuote>['2']\n invalidateBalanceQueries: () => void\n invalidateQuoteQuery: () => void\n setDetails: Dispatch<React.SetStateAction<Execute['details'] | null>>\n setSwapError: Dispatch<React.SetStateAction<Error | null>>\n abortController: AbortController | null\n fromTokenPriceData: ReturnType<typeof useTokenPrice>['data']\n isLoadingFromTokenPrice: boolean\n toTokenPriceData: ReturnType<typeof useTokenPrice>['data']\n isLoadingToTokenPrice: boolean\n}\n\n// shared query options for useTokenPrice\nconst tokenPriceQueryOptions = {\n staleTime: 60 * 1000, // 1 minute\n refetchInterval: 30 * 1000, // 30 seconds\n refetchOnWindowFocus: false\n}\n\nconst SwapWidgetRenderer: FC<SwapWidgetRendererProps> = ({\n transactionModalOpen,\n setTransactionModalOpen,\n depositAddressModalOpen,\n fromToken: _fromToken,\n setFromToken: _setFromToken,\n toToken: _toToken,\n setToToken: _setToToken,\n defaultToAddress,\n defaultAmount,\n defaultTradeType,\n slippageTolerance,\n context,\n wallet,\n multiWalletSupportEnabled = false,\n linkedWallets,\n supportedWalletVMs,\n children,\n onAnalyticEvent,\n onSwapError\n}) => {\n const haptic = useHapticEvent()\n const [fromToken, setFromToken] = useFallbackState(\n _setFromToken ? _fromToken : undefined,\n _setFromToken\n ? [\n _fromToken,\n _setFromToken as Dispatch<SetStateAction<Token | undefined>>\n ]\n : undefined\n )\n const [toToken, setToToken] = useFallbackState(\n _setToToken ? _toToken : undefined,\n _setToToken\n ? [_toToken, _setToToken as Dispatch<SetStateAction<Token | undefined>>]\n : undefined\n )\n const providerOptionsContext = useContext(ProviderOptionsContext)\n const connectorKeyOverrides = providerOptionsContext.vmConnectorKeyOverrides\n const relayClient = useRelayClient()\n const { connector } = useAccount()\n const walletClient = useWalletClient()\n const [customToAddress, setCustomToAddress] = useState<\n Address | string | undefined\n >(defaultToAddress)\n const address = useWalletAddress(wallet, linkedWallets)\n\n const [tradeType, setTradeType] = useState<'EXACT_INPUT' | 'EXPECTED_OUTPUT'>(\n defaultTradeType ?? 'EXACT_INPUT'\n )\n const queryClient = useQueryClient()\n const [steps, setSteps] = useState<null | Execute['steps']>(null)\n const [quoteInProgress, setQuoteInProgress] = useState<null | Execute>(null)\n const [waitingForSteps, setWaitingForSteps] = useState(false)\n const [details, setDetails] = useState<null | Execute['details']>(null)\n const [gasTopUpEnabled, setGasTopUpEnabled] = useState(false)\n const [abortController, setAbortController] =\n useState<AbortController | null>(null)\n\n const {\n value: amountInputValue,\n debouncedValue: debouncedInputAmountValue,\n setValue: setAmountInputValue,\n debouncedControls: debouncedAmountInputControls\n } = useDebounceState<string>(\n !defaultTradeType || defaultTradeType === 'EXACT_INPUT'\n ? (defaultAmount ?? '')\n : '',\n 500\n )\n const {\n value: amountOutputValue,\n debouncedValue: debouncedOutputAmountValue,\n setValue: setAmountOutputValue,\n debouncedControls: debouncedAmountOutputControls\n } = useDebounceState<string>(\n defaultTradeType === 'EXPECTED_OUTPUT' ? (defaultAmount ?? '') : '',\n 500\n )\n\n const [swapError, setSwapError] = useState<Error | null>(null)\n\n const toChain = relayClient?.chains.find(\n (chain) => chain.id === toToken?.chainId\n )\n const fromChain = relayClient?.chains?.find(\n (chain) => chain.id === fromToken?.chainId\n )\n\n const fromChainWalletVMSupported =\n isChainVmTypeSupported(fromChain?.vmType, supportedWalletVMs) ||\n fromChain?.id === 1337\n const toChainWalletVMSupported =\n isChainVmTypeSupported(toChain?.vmType, supportedWalletVMs)\n\n const defaultRecipient = useMemo(() => {\n const _linkedWallet = linkedWallets?.find(\n (linkedWallet) =>\n address ===\n (linkedWallet.vmType === 'evm'\n ? linkedWallet.address.toLowerCase()\n : linkedWallet.address)\n )\n const _isValidToAddress = isValidAddress(\n toChain?.vmType,\n customToAddress ?? '',\n toChain?.id,\n !customToAddress && _linkedWallet?.address === address\n ? _linkedWallet?.connector\n : undefined,\n connectorKeyOverrides\n )\n if (\n multiWalletSupportEnabled &&\n toChain &&\n linkedWallets &&\n !_isValidToAddress\n ) {\n const supportedAddress = findSupportedWallet(\n toChain,\n customToAddress,\n linkedWallets,\n connectorKeyOverrides\n )\n\n return supportedAddress\n }\n }, [\n multiWalletSupportEnabled,\n toChain,\n customToAddress,\n address,\n linkedWallets,\n setCustomToAddress\n ])\n\n const recipient = customToAddress ?? defaultRecipient ?? address\n\n const {\n value: fromBalance,\n queryKey: fromBalanceQueryKey,\n isLoading: isLoadingFromBalance,\n isError: fromBalanceErrorFetching,\n isDuneBalance: fromBalanceIsDune,\n hasPendingBalance: fromBalancePending\n } = useCurrencyBalance({\n chain: fromChain,\n address: address,\n currency: fromToken?.address ? (fromToken.address as Address) : undefined,\n enabled: fromToken !== undefined,\n refreshInterval: undefined,\n wallet\n })\n\n const {\n value: toBalance,\n queryKey: toBalanceQueryKey,\n isLoading: isLoadingToBalance,\n isDuneBalance: toBalanceIsDune,\n hasPendingBalance: toBalancePending\n } = useCurrencyBalance({\n chain: toChain,\n address: recipient,\n currency: toToken?.address ? (toToken.address as Address) : undefined,\n enabled: toToken !== undefined,\n refreshInterval: undefined,\n wallet\n })\n\n const invalidateBalanceQueries = useCallback(() => {\n const invalidatePeriodically = (invalidateFn: () => void) => {\n let maxRefreshes = 4\n let refreshCount = 0\n const timer = setInterval(() => {\n if (maxRefreshes === refreshCount) {\n clearInterval(timer)\n return\n }\n refreshCount++\n invalidateFn()\n }, 3000)\n }\n\n queryClient.invalidateQueries({ queryKey: ['useDuneBalances'] })\n\n // Dune balances are sometimes stale, because of this we need to aggressively fetch them\n // for a predetermined period to make sure we get back a fresh response\n if (fromBalanceIsDune) {\n invalidatePeriodically(() => {\n queryClient.invalidateQueries({ queryKey: fromBalanceQueryKey })\n })\n } else {\n queryClient.invalidateQueries({ queryKey: fromBalanceQueryKey })\n }\n if (toBalanceIsDune) {\n invalidatePeriodically(() => {\n queryClient.invalidateQueries({ queryKey: toBalanceQueryKey })\n })\n } else {\n queryClient.invalidateQueries({ queryKey: toBalanceQueryKey })\n }\n }, [\n queryClient,\n fromBalanceQueryKey,\n toBalanceQueryKey,\n toBalanceIsDune,\n fromBalanceIsDune,\n address\n ])\n const { data: capabilities } = useCapabilities({\n query: {\n enabled:\n connector &&\n (connector.id === 'coinbaseWalletSDK' || connector.id === 'coinbase')\n }\n })\n const hasAuxiliaryFundsSupport = Boolean(\n fromToken?.chainId\n ? capabilities?.[fromToken?.chainId]?.auxiliaryFunds?.supported\n : false\n )\n\n const isSvmSwap = fromChain?.vmType === 'svm' || toChain?.vmType === 'svm'\n const isBvmSwap = fromChain?.vmType === 'bvm' || toChain?.vmType === 'bvm'\n const linkedWallet = linkedWallets?.find(\n (linkedWallet) =>\n address ===\n (linkedWallet.vmType === 'evm'\n ? linkedWallet.address.toLowerCase()\n : linkedWallet.address) || linkedWallet.address === address\n )\n\n const isRecipientLinked =\n (recipient\n ? linkedWallets?.find((wallet) => wallet.address === recipient)\n : undefined) !== undefined\n\n const isValidFromAddress = isValidAddress(\n fromChain?.vmType,\n address ?? '',\n fromChain?.id,\n linkedWallet?.connector,\n connectorKeyOverrides\n )\n const fromAddressWithFallback = addressWithFallback(\n fromChain?.vmType,\n address,\n fromChain?.id,\n linkedWallet?.connector,\n connectorKeyOverrides\n )\n\n const isValidToAddress = isValidAddress(\n toChain?.vmType,\n recipient ?? '',\n toChain?.id\n )\n\n const toAddressWithFallback = addressWithFallback(\n toChain?.vmType,\n recipient,\n toChain?.id\n )\n\n const { displayName: toDisplayName } = useDisplayName(\n recipient,\n toChain?.vmType,\n toChain?.id\n )\n\n const [currentSlippageTolerance, setCurrentSlippageTolerance] = useState<\n string | undefined\n >(slippageTolerance)\n\n useEffect(() => {\n setCurrentSlippageTolerance(slippageTolerance)\n }, [slippageTolerance])\n\n const {\n required: gasTopUpRequired,\n amount: _gasTopUpAmount,\n amountUsd: _gasTopUpAmountUsd,\n balance: gasTopUpBalance\n } = useGasTopUpRequired(toChain, fromChain, toToken, recipient)\n\n // Retrieve the price of the `from` token\n const { data: fromTokenPriceData, isLoading: isLoadingFromTokenPrice } =\n useTokenPrice(\n relayClient?.baseApiUrl,\n {\n address: fromToken?.address ?? '',\n chainId: fromToken?.chainId ?? 0,\n referrer: relayClient?.source\n },\n {\n enabled: !!(fromToken?.address && fromToken.chainId),\n ...tokenPriceQueryOptions\n }\n )\n\n // Retrieve the price of the `to` token\n const { data: toTokenPriceData, isLoading: isLoadingToTokenPrice } =\n useTokenPrice(\n relayClient?.baseApiUrl,\n {\n address: toToken?.address ?? '',\n chainId: toToken?.chainId ?? 0,\n referrer: relayClient?.source\n },\n {\n enabled: !!(toToken?.address && toToken.chainId),\n ...tokenPriceQueryOptions\n }\n )\n\n const isFromNative = fromToken?.address === fromChain?.currency?.address\n\n const explicitDeposit = useExplicitDeposit(\n wallet,\n fromToken?.chainId,\n fromChain?.vmType,\n address\n )\n\n const shouldSetQuoteParameters = fromToken && toToken\n\n const quoteParameters: Parameters<typeof useQuote>['2'] =\n shouldSetQuoteParameters\n ? {\n user: fromAddressWithFallback,\n originChainId: fromToken.chainId,\n destinationChainId: toToken.chainId,\n originCurrency: fromToken.address,\n destinationCurrency: toToken.address,\n recipient: toAddressWithFallback,\n tradeType,\n appFees: providerOptionsContext.appFees,\n amount:\n tradeType === 'EXACT_INPUT'\n ? parseUnits(\n debouncedInputAmountValue,\n fromToken.decimals\n ).toString()\n : parseUnits(\n debouncedOutputAmountValue,\n toToken.decimals\n ).toString(),\n referrer: relayClient?.source ?? undefined,\n useDepositAddress: !fromChainWalletVMSupported,\n refundTo: fromToken?.chainId === 1337 ? address : undefined,\n slippageTolerance: slippageTolerance,\n topupGas: gasTopUpEnabled && gasTopUpRequired,\n ...(linkedWallet?.vmType === 'bvm' && wallet?.metadata?.publicKey\n ? {\n additionalData: {\n userPublicKey: wallet?.metadata?.publicKey\n }\n }\n : {}),\n ...(explicitDeposit !== undefined &&\n fromChain?.vmType === 'evm' && {\n explicitDeposit: explicitDeposit\n })\n }\n : undefined\n\n const onQuoteRequested: Parameters<typeof useQuote>['3'] = (\n options,\n config\n ) => {\n const interval = get15MinuteInterval()\n const quoteRequestId = sha256({ ...options, interval })\n onAnalyticEvent?.(EventNames.QUOTE_REQUESTED, {\n parameters: options,\n wallet_connector: linkedWallet?.connector,\n chain_id_in: options?.originChainId,\n chain_id_out: options?.destinationChainId,\n http_config: config,\n quote_request_id: quoteRequestId\n })\n }\n\n const onQuoteReceived: Parameters<typeof useQuote>['4'] = (\n { details, steps },\n options\n ) => {\n const interval = get15MinuteInterval()\n const quoteRequestId = sha256({ ...options, interval })\n onAnalyticEvent?.(EventNames.QUOTE_RECEIVED, {\n parameters: options,\n wallet_connector: linkedWallet?.connector,\n amount_in: details?.currencyIn?.amountFormatted,\n amount_in_raw: details?.currencyIn?.amount,\n currency_in: details?.currencyIn?.currency?.symbol,\n chain_id_in: details?.currencyIn?.currency?.chainId,\n amount_out: details?.currencyOut?.amountFormatted,\n amount_out_raw: details?.currencyOut?.amount,\n currency_out: details?.currencyOut?.currency?.symbol,\n chain_id_out: details?.currencyOut?.currency?.chainId,\n slippage_tolerance_destination_percentage:\n details?.slippageTolerance?.destination?.percent,\n slippage_tolerance_origin_percentage:\n details?.slippageTolerance?.origin?.percent,\n steps,\n quote_request_id: quoteRequestId,\n quote_id: steps ? extractQuoteId(steps) : undefined\n })\n }\n\n const quoteFetchingEnabled = Boolean(\n relayClient &&\n ((tradeType === 'EXACT_INPUT' &&\n debouncedInputAmountValue &&\n debouncedInputAmountValue.length > 0 &&\n Number(debouncedInputAmountValue) !== 0) ||\n (tradeType === 'EXPECTED_OUTPUT' &&\n debouncedOutputAmountValue &&\n debouncedOutputAmountValue.length > 0 &&\n Number(debouncedOutputAmountValue) !== 0)) &&\n fromToken !== undefined &&\n toToken !== undefined &&\n !transactionModalOpen &&\n !depositAddressModalOpen\n )\n\n const {\n data: _quoteData,\n error: quoteError,\n isFetching: isFetchingQuote,\n executeQuote: executeSwap,\n queryKey: quoteQueryKey\n } = useQuote(\n relayClient ? relayClient : undefined,\n wallet,\n quoteParameters,\n onQuoteRequested,\n onQuoteReceived,\n {\n refetchOnWindowFocus: false,\n enabled: quoteFetchingEnabled && quoteParameters !== undefined,\n refetchInterval:\n !transactionModalOpen &&\n !depositAddressModalOpen &&\n debouncedInputAmountValue === amountInputValue &&\n debouncedOutputAmountValue === amountOutputValue\n ? 12000\n : undefined\n },\n (e: any) => {\n const errorMessage = errorToJSON(\n e?.response?.data?.message ? new Error(e?.response?.data?.message) : e\n )\n const interval = get15MinuteInterval()\n const quoteRequestId = sha256({ ...quoteParameters, interval })\n onAnalyticEvent?.(EventNames.QUOTE_ERROR, {\n wallet_connector: linkedWallet?.connector,\n error_message: errorMessage,\n parameters: quoteParameters,\n quote_request_id: quoteRequestId,\n status_code: e?.response?.status ?? e?.status ?? ''\n })\n },\n undefined\n )\n\n const invalidateQuoteQuery = useCallback(() => {\n queryClient.invalidateQueries({ queryKey: quoteQueryKey })\n }, [queryClient, quoteQueryKey])\n let error =\n _quoteData || (isFetchingQuote && quoteFetchingEnabled) ? null : quoteError\n let quote = error ? undefined : _quoteData\n const gasTopUpAmount = quote?.details?.currencyGasTopup?.amount\n ? BigInt(quote?.details?.currencyGasTopup?.amount)\n : _gasTopUpAmount\n const gasTopUpAmountUsd =\n quote?.details?.currencyGasTopup?.amountUsd ?? _gasTopUpAmountUsd\n\n useDisconnected(address, () => {\n setCustomToAddress(undefined)\n })\n\n // Auto-select Lighter account when switching to LVM chain\n const isLighterChain = toChain?.vmType === 'lvm'\n const { data: connectedLighterAccount } = useLighterAccount(\n isLighterChain && address ? address : undefined\n )\n\n useEffect(() => {\n if (\n isLighterChain &&\n connectedLighterAccount?.index &&\n // Only auto-set if no valid Lighter address is already set\n (!customToAddress || !isLighterAddress(customToAddress))\n ) {\n setCustomToAddress(connectedLighterAccount.index.toString())\n }\n }, [isLighterChain, connectedLighterAccount, customToAddress])\n\n useEffect(() => {\n if (tradeType === 'EXACT_INPUT') {\n const amountOut = quote?.details?.currencyOut?.amount ?? ''\n setAmountOutputValue(\n amountOut !== ''\n ? formatUnits(\n BigInt(amountOut),\n Number(quote?.details?.currencyOut?.currency?.decimals ?? 18)\n )\n : ''\n )\n } else if (tradeType === 'EXPECTED_OUTPUT') {\n const amountIn = quote?.details?.currencyIn?.amount ?? ''\n setAmountInputValue(\n amountIn !== ''\n ? formatUnits(\n BigInt(amountIn),\n Number(quote?.details?.currencyIn?.currency?.decimals ?? 18)\n )\n : ''\n )\n }\n debouncedAmountInputControls.flush()\n debouncedAmountOutputControls.flush()\n }, [quote, tradeType])\n\n const feeBreakdown = useMemo(() => {\n const chains = relayClient?.chains\n const fromChain = chains?.find((chain) => chain.id === fromToken?.chainId)\n const toChain = chains?.find((chain) => chain.id === toToken?.chainId)\n return fromToken && toToken && fromChain && toChain && quote\n ? parseFees(toChain, fromChain, quote)\n : null\n }, [quote, fromToken, toToken, relayClient])\n\n const totalAmount = BigInt(quote?.details?.currencyIn?.amount ?? 0n)\n\n const hasInsufficientBalance = Boolean(\n !fromBalanceErrorFetching &&\n totalAmount &&\n address &&\n (fromBalance ?? 0n) < totalAmount &&\n !hasAuxiliaryFundsSupport &&\n fromChainWalletVMSupported\n )\n\n const fetchQuoteErrorMessage = error\n ? error?.message\n ? (error?.message as string)\n : 'Unknown Error'\n : null\n const fetchQuoteDataErrorMessage = error\n ? (error as any)?.response?.data?.message\n ? ((error as any)?.response?.data.message as string)\n : 'Unknown Error'\n : null\n const isInsufficientLiquidityError = Boolean(\n fetchQuoteErrorMessage?.includes('No quotes available')\n )\n const isCapacityExceededError =\n fetchQuoteDataErrorMessage?.includes(\n 'Amount is higher than the available liquidity'\n ) || fetchQuoteDataErrorMessage?.includes('Insufficient relayer liquidity')\n const isCouldNotExecuteError =\n fetchQuoteDataErrorMessage?.includes('Could not execute')\n const highRelayerServiceFee = isHighRelayerServiceFeeUsd(quote)\n const relayerFeeProportion = calculateRelayerFeeProportionUsd(quote)\n const timeEstimate = calculatePriceTimeEstimate(quote?.details)\n\n const recipientWalletSupportsChain = useIsWalletCompatible(\n toChain?.id,\n recipient,\n linkedWallets,\n onAnalyticEvent\n )\n\n const isSameCurrencySameRecipientSwap =\n fromToken?.address === toToken?.address &&\n fromToken?.chainId === toToken?.chainId &&\n address === recipient\n\n const ctaCopy = useSwapButtonCta({\n fromToken,\n toToken,\n multiWalletSupportEnabled,\n isValidFromAddress,\n fromChainWalletVMSupported,\n isValidToAddress,\n toChainWalletVMSupported,\n fromChain,\n toChain,\n isSameCurrencySameRecipientSwap,\n debouncedInputAmountValue,\n debouncedOutputAmountValue,\n hasInsufficientBalance,\n isInsufficientLiquidityError,\n quote,\n operation: quote?.details?.operation\n })\n\n usePreviousValueChange(\n isCapacityExceededError,\n !isFetchingQuote,\n (capacityExceeded) => {\n if (capacityExceeded) {\n onAnalyticEvent?.(EventNames.CTA_MAX_CAPACITY_PROMPTED, {\n inputAmount: debouncedInputAmountValue,\n outputAmount: debouncedOutputAmountValue\n })\n }\n }\n )\n\n const swap = useCallback(async () => {\n let submittedEvents: string[] = []\n\n const swapErrorHandler = (\n error: any,\n currentSteps?: Execute['steps'] | null\n ) => {\n const errorMessage = errorToJSON(\n error?.response?.data?.message\n ? new Error(error?.response?.data?.message)\n : error\n )\n if (\n error &&\n ((typeof error.message === 'string' &&\n error.message.toLowerCase().includes('reject')) ||\n (typeof error === 'string' &&\n error.toLowerCase().includes('reject')) ||\n (typeof error === 'string' && error.includes('Approval Denied')) ||\n (typeof error === 'string' && error.includes('denied transaction')) ||\n (typeof error.message === 'string' &&\n error.message.includes('Approval Denied')) ||\n (typeof error.message === 'string' &&\n error.message.includes('Plugin Closed')) ||\n (typeof error.message === 'string' &&\n error.message.includes('denied transaction')) ||\n (typeof error.message === 'string' &&\n error.message.includes('Failed to initialize request') &&\n fromChain?.id === 2741)) // Abstract @TODO: remove once privy improves handling rejected transactions\n ) {\n // Close the transaction modal if the user rejects the tx\n setTransactionModalOpen(false)\n onAnalyticEvent?.(EventNames.USER_REJECTED_WALLET, {\n error_message: errorMessage\n })\n return\n }\n\n const { step, stepItem } = getCurrentStep(currentSteps)\n const swapEventData = {\n ...getSwapEventData(\n quote?.details,\n quote?.fees,\n currentSteps ?? null,\n linkedWallet?.connector,\n quoteParameters\n ),\n error_message: errorMessage\n }\n const isApproval = step?.id === 'approve'\n const errorEvent = isApproval\n ? EventNames.APPROVAL_ERROR\n : EventNames.DEPOSIT_ERROR\n\n //Filter out receipt/deposit transaction errors, those are approval/deposit errors\n const isTransactionConfirmationError =\n (error &&\n typeof error.message === 'string' &&\n error.message.includes('TransactionConfirmationError')) ||\n (error.name && error.name.includes('TransactionConfirmationError'))\n if (\n stepItem?.receipt &&\n stepItem.check &&\n !isTransactionConfirmationError &&\n (typeof stepItem.receipt === 'object' && 'status' in stepItem.receipt\n ? stepItem.receipt.status !== 'reverted'\n : true) &&\n (!stepItem.checkStatus || stepItem.checkStatus !== 'unknown')\n ) {\n //In some cases there's a race condition where an error is thrown before the steps get a chance to call\n //the callback which triggers the success event. This is a workaround to ensure the success event is triggered when\n //we have a receipt and require a fill check if we haven't already send the success event.\n const successEvent = isApproval\n ? EventNames.APPROVAL_SUCCESS\n : EventNames.DEPOSIT_SUCCESS\n if (!submittedEvents.includes(successEvent)) {\n onAnalyticEvent?.(successEvent, swapEventData)\n submittedEvents.push(successEvent)\n //To preserve the order of events we need to delay sending the fill error event but mark that we did send it to avoid duplicates\n setTimeout(() => {\n onAnalyticEvent?.(EventNames.FILL_ERROR, swapEventData)\n }, 20)\n } else {\n onAnalyticEvent?.(EventNames.FILL_ERROR, swapEventData)\n }\n } else if (\n !stepItem?.receipt ||\n (typeof stepItem.receipt === 'object' &&\n 'status' in stepItem.receipt &&\n stepItem.receipt.status === 'reverted')\n ) {\n onAnalyticEvent?.(errorEvent, swapEventData)\n } else {\n onAnalyticEvent?.(EventNames.SWAP_ERROR, swapEventData)\n }\n\n haptic('error')\n setSwapError(errorMessage)\n onSwapError?.(errorMessage, { ...quote, steps: currentSteps } as Execute)\n }\n\n try {\n const swapEventData = getSwapEventData(\n quote?.details,\n quote?.fees,\n quote?.steps ? (quote?.steps as Execute['steps']) : null,\n linkedWallet?.connector,\n quoteParameters\n )\n onAnalyticEvent?.(EventNames.SWAP_CTA_CLICKED, swapEventData)\n setWaitingForSteps(true)\n\n if (!executeSwap) {\n throw new Error('Missing a quote')\n }\n\n if (!wallet && !walletClient.data) {\n throw new Error('Missing a wallet')\n }\n\n setSteps(quote?.steps as Execute['steps'])\n setQuoteInProgress(quote as Execute)\n setTransactionModalOpen(true)\n\n const _wallet =\n wallet ?? adaptViemWallet(walletClient.data as WalletClient)\n\n const activeWalletChainId = await _wallet?.getChainId()\n const activeWalletChain = relayClient?.chains?.find(\n (chain) => chain.id === activeWalletChainId\n )\n let targetChainId = fromToken?.chainId\n //Special case for Hyperliquid, to sign txs on an evm chain\n if (fromToken?.chainId === 1337) {\n targetChainId =\n activeWalletChain?.vmType !== 'evm' ? 1 : activeWalletChainId\n }\n\n if (fromToken && targetChainId && targetChainId !== activeWalletChainId) {\n onAnalyticEvent?.(EventNames.SWAP_SWITCH_NETWORK, {\n activeWalletChainId,\n ...swapEventData\n })\n await _wallet?.switchChain(targetChainId)\n }\n\n let _currentSteps: Execute['steps'] | undefined = undefined\n\n const execPromise = executeSwap(({ steps: currentSteps }) => {\n setSteps(currentSteps)\n _currentSteps = currentSteps\n\n const { step, stepItem } = getCurrentStep(currentSteps)\n const swapEventData = getSwapEventData(\n quote?.details,\n quote?.fees,\n currentSteps,\n linkedWallet?.connector,\n quoteParameters\n )\n if (step && stepItem) {\n //@ts-ignore\n const isApproval = step.id === 'approve' || step.id === 'approval'\n let submittedEvent = isApproval\n ? EventNames.APPROVAL_SUBMITTED\n : EventNames.DEPOSIT_SUBMITTED\n const successEvent = isApproval\n ? EventNames.APPROVAL_SUCCESS\n : EventNames.DEPOSIT_SUCCESS\n const isBatchTransaction = Boolean(\n Array.isArray(step.items) &&\n step.items.length > 1 &&\n wallet?.handleBatchTransactionStep\n )\n if (!isApproval && isBatchTransaction) {\n submittedEvent = EventNames.BATCH_TX_SUBMITTED\n }\n if (\n !submittedEvents.includes(submittedEvent) &&\n !stepItem.receipt &&\n stepItem?.txHashes &&\n stepItem?.txHashes?.length > 0\n ) {\n submittedEvents.push(submittedEvent)\n onAnalyticEvent?.(submittedEvent, swapEventData)\n } else if (\n !submittedEvents.includes(successEvent) &&\n ((stepItem.receipt &&\n !(\n typeof stepItem.receipt === 'object' &&\n 'status' in stepItem.receipt &&\n stepItem.receipt.status === 'reverted'\n )) ||\n stepItem.checkStatus === 'pending')\n ) {\n onAnalyticEvent?.(successEvent, swapEventData)\n submittedEvents.push(successEvent)\n }\n\n if (\n stepItem.status === 'complete' &&\n stepItem.check &&\n !submittedEvents.includes(EventNames.FILL_SUCCESS)\n ) {\n //Sometimes a fill may be quicker than the tx receipt is available, so we need to handle this scenario\n if (\n !submittedEvents.includes(EventNames.DEPOSIT_SUCCESS) &&\n !isBatchTransaction\n ) {\n onAnalyticEvent?.(EventNames.DEPOSIT_SUCCESS, swapEventData)\n submittedEvents.push(EventNames.DEPOSIT_SUCCESS)\n //To preserve the order of events we need to delay sending the fill success event but mark that we did send it to avoid duplicates\n setTimeout(() => {\n onAnalyticEvent?.(EventNames.FILL_SUCCESS, swapEventData)\n }, 20)\n } else {\n onAnalyticEvent?.(EventNames.FILL_SUCCESS, swapEventData)\n }\n submittedEvents.push(EventNames.FILL_SUCCESS)\n }\n } else if (\n currentSteps?.every((step) =>\n step.items?.every((item) => item.status === 'complete')\n ) &&\n !submittedEvents.includes(EventNames.FILL_SUCCESS)\n ) {\n //Sometimes a fill may be quicker than the tx receipt is available, so we need to handle this scenario\n if (\n !submittedEvents.includes(EventNames.DEPOSIT_SUCCESS) &&\n !submittedEvents.includes(EventNames.BATCH_TX_SUBMITTED)\n ) {\n onAnalyticEvent?.(EventNames.DEPOSIT_SUCCESS, swapEventData)\n submittedEvents.push(EventNames.DEPOSIT_SUCCESS)\n //To preserve the order of events we need to delay sending the fill success event but mark that we did send it to avoid duplicates\n setTimeout(() => {\n onAnalyticEvent?.(EventNames.FILL_SUCCESS, swapEventData)\n }, 20)\n } else {\n onAnalyticEvent?.(EventNames.FILL_SUCCESS, swapEventData)\n }\n submittedEvents.push(EventNames.FILL_SUCCESS)\n }\n })\n\n // Store the AbortController for potential cancellation immediately\n if (\n execPromise &&\n typeof execPromise === 'object' &&\n 'abortController' in execPromise\n ) {\n setAbortController((execPromise as any).abortController)\n }\n\n execPromise\n ?.catch((error: any) => {\n swapErrorHandler(error, _currentSteps)\n })\n .finally(() => {\n setWaitingForSteps(false)\n setAbortController(null)\n invalidateBalanceQueries()\n })\n } catch (error: any) {\n swapErrorHandler(error)\n setWaitingForSteps(false)\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [\n relayClient,\n address,\n connector,\n wallet,\n walletClient,\n fromToken,\n toToken,\n customToAddress,\n recipient,\n debouncedInputAmountValue,\n debouncedOutputAmountValue,\n tradeType,\n waitingForSteps,\n executeSwap,\n setSteps,\n setQuoteInProgress,\n invalidateBalanceQueries,\n linkedWallet,\n abortController\n ])\n\n return (\n <>\n {children({\n quote,\n steps,\n setSteps,\n swap,\n transactionModalOpen,\n feeBreakdown,\n fromToken,\n setFromToken,\n toToken,\n setToToken,\n swapError,\n error,\n toDisplayName,\n address,\n recipient,\n customToAddress,\n setCustomToAddress,\n tradeType,\n setTradeType,\n details,\n isSameCurrencySameRecipientSwap,\n debouncedInputAmountValue,\n debouncedAmountInputControls,\n setAmountInputValue,\n amountInputValue,\n amountOutputValue,\n debouncedOutputAmountValue,\n debouncedAmountOutputControls,\n setAmountOutputValue,\n toBalance,\n toBalancePending,\n isLoadingToBalance,\n isFetchingQuote,\n isLoadingFromBalance,\n fromBalance,\n fromBalancePending,\n highRelayerServiceFee,\n relayerFeeProportion,\n hasInsufficientBalance,\n isInsufficientLiquidityError,\n isCapacityExceededError,\n isCouldNotExecuteError,\n ctaCopy,\n isFromNative,\n slippageTolerance: currentSlippageTolerance,\n timeEstimate,\n isSvmSwap,\n isBvmSwap,\n isValidFromAddress,\n isValidToAddress,\n supportedWalletVMs,\n fromChainWalletVMSupported,\n toChainWalletVMSupported,\n isRecipientLinked,\n recipientWalletSupportsChain,\n gasTopUpEnabled,\n setGasTopUpEnabled,\n gasTopUpBalance,\n gasTopUpRequired,\n gasTopUpAmount,\n gasTopUpAmountUsd,\n invalidateBalanceQueries,\n invalidateQuoteQuery,\n setDetails,\n setSwapError,\n quoteInProgress,\n setQuoteInProgress,\n linkedWallet,\n quoteParameters,\n abortController,\n fromTokenPriceData,\n toTokenPriceData,\n isLoadingFromTokenPrice,\n isLoadingToTokenPrice\n })}\n </>\n )\n}\n\nexport default SwapWidgetRenderer\n"]}
|
|
1
|
+
{"version":3,"file":"SwapWidgetRenderer.js","sourceRoot":"","sources":["../../../../src/components/widgets/SwapWidgetRenderer.tsx"],"names":[],"mappings":"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","sourcesContent":["import type { Dispatch, FC, ReactNode, SetStateAction } from 'react'\nimport { useCallback, useContext, useEffect, useMemo, useState } from 'react'\nimport {\n useCurrencyBalance,\n useRelayClient,\n useDebounceState,\n useWalletAddress,\n useDisconnected,\n usePreviousValueChange,\n useIsWalletCompatible,\n useKnownTokenContract,\n useFallbackState,\n useGasTopUpRequired,\n useExplicitDeposit,\n useDisplayName,\n useLighterAccount\n} from '../../hooks/index.js'\nimport type { Address, WalletClient } from 'viem'\nimport { formatUnits, parseUnits } from 'viem'\nimport { useAccount, useWalletClient } from 'wagmi'\nimport { useCapabilities } from 'wagmi/experimental'\nimport type { Token } from '../../types/index.js'\nimport { useQueryClient } from '@tanstack/react-query'\nimport type { ChainVM, Execute } from '@relayprotocol/relay-sdk'\nimport {\n calculatePriceTimeEstimate,\n calculateRelayerFeeProportionUsd,\n extractQuoteId,\n getCurrentStep,\n getSwapEventData,\n isHighRelayerServiceFeeUsd,\n parseFees\n} from '../../utils/quote.js'\nimport { useQuote, useTokenPrice } from '@relayprotocol/relay-kit-hooks'\nimport { EventNames } from '../../constants/events.js'\nimport {\n ProviderOptionsContext,\n useHapticEvent\n} from '../../providers/RelayKitProvider.js'\nimport type { DebouncedState } from 'usehooks-ts'\nimport type { AdaptedWallet } from '@relayprotocol/relay-sdk'\nimport type { LinkedWallet } from '../../types/index.js'\nimport {\n addressesEqual,\n addressWithFallback,\n isValidAddress,\n findSupportedWallet,\n isChainVmTypeSupported\n} from '../../utils/address.js'\nimport { adaptViemWallet } from '@relayprotocol/relay-sdk'\nimport { errorToJSON } from '../../utils/errors.js'\nimport { useSwapButtonCta } from '../../hooks/widget/useSwapButtonCta.js'\nimport { sha256 } from '../../utils/hashing.js'\nimport { get15MinuteInterval } from '../../utils/time.js'\nimport { isLighterAddress } from '../../utils/lighter.js'\nimport type { FeeBreakdown } from '../../types/FeeBreakdown.js'\n\nexport type TradeType = 'EXACT_INPUT' | 'EXPECTED_OUTPUT'\n\ntype SwapWidgetRendererProps = {\n transactionModalOpen: boolean\n setTransactionModalOpen: React.Dispatch<React.SetStateAction<boolean>>\n depositAddressModalOpen: boolean\n children: (props: ChildrenProps) => ReactNode\n fromToken?: Token\n setFromToken?: (token?: Token) => void\n toToken?: Token\n setToToken?: (token?: Token) => void\n defaultToAddress?: Address\n defaultAmount?: string\n defaultTradeType?: TradeType\n slippageTolerance?: string\n context: 'Swap' | 'Deposit' | 'Withdraw'\n wallet?: AdaptedWallet\n linkedWallets?: LinkedWallet[]\n multiWalletSupportEnabled?: boolean\n supportedWalletVMs: Omit<ChainVM, 'hypevm' | 'lvm'>[]\n onConnectWallet?: () => void\n onAnalyticEvent?: (eventName: string, data?: any) => void\n onSwapError?: (error: string, data?: Execute) => void\n}\n\nexport type ChildrenProps = {\n quote?: ReturnType<typeof useQuote>['data']\n steps: Execute['steps'] | null\n setSteps: Dispatch<React.SetStateAction<Execute['steps'] | null>>\n swap: () => void\n transactionModalOpen: boolean\n details: null | Execute['details']\n feeBreakdown: FeeBreakdown | null\n fromToken?: Token\n setFromToken: Dispatch<React.SetStateAction<Token | undefined>>\n toToken?: Token\n setToToken: Dispatch<React.SetStateAction<Token | undefined>>\n swapError: Error | null\n error: Error | null\n toDisplayName?: string\n address?: Address | string\n recipient?: Address | string\n customToAddress?: Address | string\n setCustomToAddress: Dispatch<\n React.SetStateAction<Address | string | undefined>\n >\n tradeType: TradeType\n setTradeType: Dispatch<React.SetStateAction<TradeType>>\n isSameCurrencySameRecipientSwap: boolean\n amountInputValue: string\n debouncedInputAmountValue: string\n setAmountInputValue: (value: string) => void\n debouncedAmountInputControls: DebouncedState<(value: string) => void>\n amountOutputValue: string\n debouncedOutputAmountValue: string\n setAmountOutputValue: (value: string) => void\n debouncedAmountOutputControls: DebouncedState<(value: string) => void>\n toBalance?: bigint\n toBalancePending?: boolean\n fromBalance?: bigint\n fromBalancePending?: boolean\n isFetchingQuote: boolean\n isLoadingToBalance: boolean\n isLoadingFromBalance: boolean\n highRelayerServiceFee: boolean\n relayerFeeProportion: bigint\n hasInsufficientBalance: boolean\n isInsufficientLiquidityError?: boolean\n isCapacityExceededError?: boolean\n isCouldNotExecuteError?: boolean\n ctaCopy: string\n isFromNative: boolean\n slippageTolerance?: string\n timeEstimate?: { time: number; formattedTime: string }\n isSvmSwap: boolean\n isBvmSwap: boolean\n isValidFromAddress: boolean\n isValidToAddress: boolean\n supportedWalletVMs: Omit<ChainVM, 'hypevm' | 'lvm'>[]\n fromChainWalletVMSupported: boolean\n toChainWalletVMSupported: boolean\n isRecipientLinked?: boolean\n recipientWalletSupportsChain?: boolean\n gasTopUpEnabled: boolean\n setGasTopUpEnabled: Dispatch<React.SetStateAction<boolean>>\n gasTopUpBalance?: bigint\n gasTopUpRequired: boolean\n gasTopUpAmount?: bigint\n gasTopUpAmountUsd?: string\n quoteInProgress: null | Execute\n setQuoteInProgress: Dispatch<React.SetStateAction<null | Execute>>\n linkedWallet?: LinkedWallet\n quoteParameters?: Parameters<typeof useQuote>['2']\n invalidateBalanceQueries: () => void\n invalidateQuoteQuery: () => void\n setDetails: Dispatch<React.SetStateAction<Execute['details'] | null>>\n setSwapError: Dispatch<React.SetStateAction<Error | null>>\n abortController: AbortController | null\n fromTokenPriceData: ReturnType<typeof useTokenPrice>['data']\n isLoadingFromTokenPrice: boolean\n toTokenPriceData: ReturnType<typeof useTokenPrice>['data']\n isLoadingToTokenPrice: boolean\n}\n\n// shared query options for useTokenPrice\nconst tokenPriceQueryOptions = {\n staleTime: 60 * 1000, // 1 minute\n refetchInterval: 30 * 1000, // 30 seconds\n refetchOnWindowFocus: false\n}\n\nconst SwapWidgetRenderer: FC<SwapWidgetRendererProps> = ({\n transactionModalOpen,\n setTransactionModalOpen,\n depositAddressModalOpen,\n fromToken: _fromToken,\n setFromToken: _setFromToken,\n toToken: _toToken,\n setToToken: _setToToken,\n defaultToAddress,\n defaultAmount,\n defaultTradeType,\n slippageTolerance,\n context,\n wallet,\n multiWalletSupportEnabled = false,\n linkedWallets,\n supportedWalletVMs,\n children,\n onAnalyticEvent,\n onSwapError\n}) => {\n const haptic = useHapticEvent()\n const [fromToken, setFromToken] = useFallbackState(\n _setFromToken ? _fromToken : undefined,\n _setFromToken\n ? [\n _fromToken,\n _setFromToken as Dispatch<SetStateAction<Token | undefined>>\n ]\n : undefined\n )\n const [toToken, setToToken] = useFallbackState(\n _setToToken ? _toToken : undefined,\n _setToToken\n ? [_toToken, _setToToken as Dispatch<SetStateAction<Token | undefined>>]\n : undefined\n )\n const providerOptionsContext = useContext(ProviderOptionsContext)\n const connectorKeyOverrides = providerOptionsContext.vmConnectorKeyOverrides\n const relayClient = useRelayClient()\n const { connector } = useAccount()\n const walletClient = useWalletClient()\n const [customToAddress, setCustomToAddress] = useState<\n Address | string | undefined\n >(defaultToAddress)\n const address = useWalletAddress(wallet, linkedWallets)\n\n const [tradeType, setTradeType] = useState<'EXACT_INPUT' | 'EXPECTED_OUTPUT'>(\n defaultTradeType ?? 'EXACT_INPUT'\n )\n const queryClient = useQueryClient()\n const [steps, setSteps] = useState<null | Execute['steps']>(null)\n const [quoteInProgress, setQuoteInProgress] = useState<null | Execute>(null)\n const [waitingForSteps, setWaitingForSteps] = useState(false)\n const [details, setDetails] = useState<null | Execute['details']>(null)\n const [gasTopUpEnabled, setGasTopUpEnabled] = useState(false)\n const [abortController, setAbortController] =\n useState<AbortController | null>(null)\n\n const {\n value: amountInputValue,\n debouncedValue: debouncedInputAmountValue,\n setValue: setAmountInputValue,\n debouncedControls: debouncedAmountInputControls\n } = useDebounceState<string>(\n !defaultTradeType || defaultTradeType === 'EXACT_INPUT'\n ? (defaultAmount ?? '')\n : '',\n 500\n )\n const {\n value: amountOutputValue,\n debouncedValue: debouncedOutputAmountValue,\n setValue: setAmountOutputValue,\n debouncedControls: debouncedAmountOutputControls\n } = useDebounceState<string>(\n defaultTradeType === 'EXPECTED_OUTPUT' ? (defaultAmount ?? '') : '',\n 500\n )\n\n const [swapError, setSwapError] = useState<Error | null>(null)\n\n const toChain = relayClient?.chains.find(\n (chain) => chain.id === toToken?.chainId\n )\n const fromChain = relayClient?.chains?.find(\n (chain) => chain.id === fromToken?.chainId\n )\n\n const fromChainWalletVMSupported =\n isChainVmTypeSupported(fromChain?.vmType, supportedWalletVMs) ||\n fromChain?.id === 1337\n const toChainWalletVMSupported = isChainVmTypeSupported(\n toChain?.vmType,\n supportedWalletVMs\n )\n\n const defaultRecipient = useMemo(() => {\n const _linkedWallet = linkedWallets?.find(\n (linkedWallet) =>\n address ===\n (linkedWallet.vmType === 'evm'\n ? linkedWallet.address.toLowerCase()\n : linkedWallet.address)\n )\n const _isValidToAddress = isValidAddress(\n toChain?.vmType,\n customToAddress ?? '',\n toChain?.id,\n !customToAddress && _linkedWallet?.address === address\n ? _linkedWallet?.connector\n : undefined,\n connectorKeyOverrides\n )\n if (\n multiWalletSupportEnabled &&\n toChain &&\n linkedWallets &&\n !_isValidToAddress\n ) {\n const supportedAddress = findSupportedWallet(\n toChain,\n customToAddress,\n linkedWallets,\n connectorKeyOverrides\n )\n\n return supportedAddress\n }\n }, [\n multiWalletSupportEnabled,\n toChain,\n customToAddress,\n address,\n linkedWallets,\n setCustomToAddress\n ])\n\n const recipient = customToAddress ?? defaultRecipient ?? address\n\n const {\n value: fromBalance,\n queryKey: fromBalanceQueryKey,\n isLoading: isLoadingFromBalance,\n isError: fromBalanceErrorFetching,\n hasPendingBalance: fromBalancePending\n } = useCurrencyBalance({\n chain: fromChain,\n address: address,\n currency: fromToken?.address ? (fromToken.address as Address) : undefined,\n enabled: fromToken !== undefined,\n refreshInterval: undefined,\n wallet\n })\n\n const {\n value: toBalance,\n queryKey: toBalanceQueryKey,\n isLoading: isLoadingToBalance,\n hasPendingBalance: toBalancePending\n } = useCurrencyBalance({\n chain: toChain,\n address: recipient,\n currency: toToken?.address ? (toToken.address as Address) : undefined,\n enabled: toToken !== undefined,\n refreshInterval: undefined,\n wallet\n })\n\n const invalidateBalanceQueries = useCallback(() => {\n queryClient.invalidateQueries({ queryKey: ['useCodexBalances'] })\n queryClient.invalidateQueries({ queryKey: fromBalanceQueryKey })\n queryClient.invalidateQueries({ queryKey: toBalanceQueryKey })\n }, [queryClient, fromBalanceQueryKey, toBalanceQueryKey, address])\n const { data: capabilities } = useCapabilities({\n query: {\n enabled:\n connector &&\n (connector.id === 'coinbaseWalletSDK' || connector.id === 'coinbase')\n }\n })\n const hasAuxiliaryFundsSupport = Boolean(\n fromToken?.chainId\n ? capabilities?.[fromToken?.chainId]?.auxiliaryFunds?.supported\n : false\n )\n\n const isSvmSwap = fromChain?.vmType === 'svm' || toChain?.vmType === 'svm'\n const isBvmSwap = fromChain?.vmType === 'bvm' || toChain?.vmType === 'bvm'\n const linkedWallet = linkedWallets?.find(\n (linkedWallet) =>\n address ===\n (linkedWallet.vmType === 'evm'\n ? linkedWallet.address.toLowerCase()\n : linkedWallet.address) || linkedWallet.address === address\n )\n\n const isRecipientLinked =\n (recipient\n ? linkedWallets?.find((wallet) => wallet.address === recipient)\n : undefined) !== undefined\n\n const isValidFromAddress = isValidAddress(\n fromChain?.vmType,\n address ?? '',\n fromChain?.id,\n linkedWallet?.connector,\n connectorKeyOverrides\n )\n const fromAddressWithFallback = addressWithFallback(\n fromChain?.vmType,\n address,\n fromChain?.id,\n linkedWallet?.connector,\n connectorKeyOverrides\n )\n\n // Never allow the destination token's contract address as the recipient\n const recipientIsDestinationToken = Boolean(\n toChain &&\n toToken &&\n toToken.chainId === toChain.id &&\n addressesEqual(toChain.vmType ?? 'evm', recipient, toToken.address)\n )\n\n // Check custom recipients against the destination chain's known currencies\n const { isKnownTokenContract: recipientMatchesKnownToken } =\n useKnownTokenContract(\n toChain,\n customToAddress,\n customToAddress !== undefined && !recipientIsDestinationToken\n )\n\n // Only confirmed matches invalidate the recipient\n const recipientIsKnownTokenContract = recipientMatchesKnownToken\n\n const isValidToAddress =\n !recipientIsDestinationToken &&\n !recipientIsKnownTokenContract &&\n isValidAddress(toChain?.vmType, recipient ?? '', toChain?.id)\n\n const toAddressWithFallback = addressWithFallback(\n toChain?.vmType,\n recipientIsDestinationToken || recipientIsKnownTokenContract\n ? undefined\n : recipient,\n toChain?.id\n )\n\n const { displayName: toDisplayName } = useDisplayName(\n recipient,\n toChain?.vmType,\n toChain?.id\n )\n\n const [currentSlippageTolerance, setCurrentSlippageTolerance] = useState<\n string | undefined\n >(slippageTolerance)\n\n useEffect(() => {\n setCurrentSlippageTolerance(slippageTolerance)\n }, [slippageTolerance])\n\n const {\n required: gasTopUpRequired,\n amount: _gasTopUpAmount,\n amountUsd: _gasTopUpAmountUsd,\n balance: gasTopUpBalance\n } = useGasTopUpRequired(toChain, fromChain, toToken, recipient)\n\n // Retrieve the price of the `from` token\n const { data: fromTokenPriceData, isLoading: isLoadingFromTokenPrice } =\n useTokenPrice(\n relayClient?.baseApiUrl,\n {\n address: fromToken?.address ?? '',\n chainId: fromToken?.chainId ?? 0,\n referrer: relayClient?.source\n },\n {\n enabled: !!(fromToken?.address && fromToken.chainId),\n ...tokenPriceQueryOptions\n }\n )\n\n // Retrieve the price of the `to` token\n const { data: toTokenPriceData, isLoading: isLoadingToTokenPrice } =\n useTokenPrice(\n relayClient?.baseApiUrl,\n {\n address: toToken?.address ?? '',\n chainId: toToken?.chainId ?? 0,\n referrer: relayClient?.source\n },\n {\n enabled: !!(toToken?.address && toToken.chainId),\n ...tokenPriceQueryOptions\n }\n )\n\n const isFromNative = fromToken?.address === fromChain?.currency?.address\n\n const explicitDeposit = useExplicitDeposit(\n wallet,\n fromToken?.chainId,\n fromChain?.vmType,\n address\n )\n\n const shouldSetQuoteParameters = fromToken && toToken\n\n const quoteParameters: Parameters<typeof useQuote>['2'] =\n shouldSetQuoteParameters\n ? {\n user: fromAddressWithFallback,\n originChainId: fromToken.chainId,\n destinationChainId: toToken.chainId,\n originCurrency: fromToken.address,\n destinationCurrency: toToken.address,\n recipient: toAddressWithFallback,\n tradeType,\n appFees: providerOptionsContext.appFees,\n amount:\n tradeType === 'EXACT_INPUT'\n ? parseUnits(\n debouncedInputAmountValue,\n fromToken.decimals\n ).toString()\n : parseUnits(\n debouncedOutputAmountValue,\n toToken.decimals\n ).toString(),\n referrer: relayClient?.source ?? undefined,\n useDepositAddress: !fromChainWalletVMSupported,\n refundTo: fromToken?.chainId === 1337 ? address : undefined,\n slippageTolerance: slippageTolerance,\n topupGas: gasTopUpEnabled && gasTopUpRequired,\n ...(linkedWallet?.vmType === 'bvm' && wallet?.metadata?.publicKey\n ? {\n additionalData: {\n userPublicKey: wallet?.metadata?.publicKey\n }\n }\n : {}),\n ...(explicitDeposit !== undefined &&\n fromChain?.vmType === 'evm' && {\n explicitDeposit: explicitDeposit\n })\n }\n : undefined\n\n const onQuoteRequested: Parameters<typeof useQuote>['3'] = (\n options,\n config\n ) => {\n const interval = get15MinuteInterval()\n const quoteRequestId = sha256({ ...options, interval })\n onAnalyticEvent?.(EventNames.QUOTE_REQUESTED, {\n parameters: options,\n wallet_connector: linkedWallet?.connector,\n chain_id_in: options?.originChainId,\n chain_id_out: options?.destinationChainId,\n http_config: config,\n quote_request_id: quoteRequestId\n })\n }\n\n const onQuoteReceived: Parameters<typeof useQuote>['4'] = (\n { details, steps },\n options\n ) => {\n const interval = get15MinuteInterval()\n const quoteRequestId = sha256({ ...options, interval })\n onAnalyticEvent?.(EventNames.QUOTE_RECEIVED, {\n parameters: options,\n wallet_connector: linkedWallet?.connector,\n amount_in: details?.currencyIn?.amountFormatted,\n amount_in_raw: details?.currencyIn?.amount,\n currency_in: details?.currencyIn?.currency?.symbol,\n chain_id_in: details?.currencyIn?.currency?.chainId,\n amount_out: details?.currencyOut?.amountFormatted,\n amount_out_raw: details?.currencyOut?.amount,\n currency_out: details?.currencyOut?.currency?.symbol,\n chain_id_out: details?.currencyOut?.currency?.chainId,\n slippage_tolerance_destination_percentage:\n details?.slippageTolerance?.destination?.percent,\n slippage_tolerance_origin_percentage:\n details?.slippageTolerance?.origin?.percent,\n steps,\n quote_request_id: quoteRequestId,\n quote_id: steps ? extractQuoteId(steps) : undefined\n })\n }\n\n const quoteFetchingEnabled = Boolean(\n relayClient &&\n ((tradeType === 'EXACT_INPUT' &&\n debouncedInputAmountValue &&\n debouncedInputAmountValue.length > 0 &&\n Number(debouncedInputAmountValue) !== 0) ||\n (tradeType === 'EXPECTED_OUTPUT' &&\n debouncedOutputAmountValue &&\n debouncedOutputAmountValue.length > 0 &&\n Number(debouncedOutputAmountValue) !== 0)) &&\n fromToken !== undefined &&\n toToken !== undefined &&\n !transactionModalOpen &&\n !depositAddressModalOpen\n )\n\n const {\n data: _quoteData,\n error: quoteError,\n isFetching: isFetchingQuote,\n executeQuote: executeSwap,\n queryKey: quoteQueryKey\n } = useQuote(\n relayClient ? relayClient : undefined,\n wallet,\n quoteParameters,\n onQuoteRequested,\n onQuoteReceived,\n {\n refetchOnWindowFocus: false,\n enabled: quoteFetchingEnabled && quoteParameters !== undefined,\n refetchInterval:\n !transactionModalOpen &&\n !depositAddressModalOpen &&\n debouncedInputAmountValue === amountInputValue &&\n debouncedOutputAmountValue === amountOutputValue\n ? 12000\n : undefined\n },\n (e: any) => {\n const errorMessage = errorToJSON(\n e?.response?.data?.message ? new Error(e?.response?.data?.message) : e\n )\n const interval = get15MinuteInterval()\n const quoteRequestId = sha256({ ...quoteParameters, interval })\n onAnalyticEvent?.(EventNames.QUOTE_ERROR, {\n wallet_connector: linkedWallet?.connector,\n error_message: errorMessage,\n parameters: quoteParameters,\n quote_request_id: quoteRequestId,\n status_code: e?.response?.status ?? e?.status ?? ''\n })\n },\n undefined\n )\n\n const invalidateQuoteQuery = useCallback(() => {\n queryClient.invalidateQueries({ queryKey: quoteQueryKey })\n }, [queryClient, quoteQueryKey])\n let error =\n _quoteData || (isFetchingQuote && quoteFetchingEnabled) ? null : quoteError\n let quote = error ? undefined : _quoteData\n const gasTopUpAmount = quote?.details?.currencyGasTopup?.amount\n ? BigInt(quote?.details?.currencyGasTopup?.amount)\n : _gasTopUpAmount\n const gasTopUpAmountUsd =\n quote?.details?.currencyGasTopup?.amountUsd ?? _gasTopUpAmountUsd\n\n useDisconnected(address, () => {\n setCustomToAddress(undefined)\n })\n\n // Auto-select Lighter account when switching to LVM chain\n const isLighterChain = toChain?.vmType === 'lvm'\n const { data: connectedLighterAccount } = useLighterAccount(\n isLighterChain && address ? address : undefined\n )\n\n useEffect(() => {\n if (\n isLighterChain &&\n connectedLighterAccount?.index &&\n // Only auto-set if no valid Lighter address is already set\n (!customToAddress || !isLighterAddress(customToAddress))\n ) {\n setCustomToAddress(connectedLighterAccount.index.toString())\n }\n }, [isLighterChain, connectedLighterAccount, customToAddress])\n\n useEffect(() => {\n if (tradeType === 'EXACT_INPUT') {\n const amountOut = quote?.details?.currencyOut?.amount ?? ''\n setAmountOutputValue(\n amountOut !== ''\n ? formatUnits(\n BigInt(amountOut),\n Number(quote?.details?.currencyOut?.currency?.decimals ?? 18)\n )\n : ''\n )\n } else if (tradeType === 'EXPECTED_OUTPUT') {\n const amountIn = quote?.details?.currencyIn?.amount ?? ''\n setAmountInputValue(\n amountIn !== ''\n ? formatUnits(\n BigInt(amountIn),\n Number(quote?.details?.currencyIn?.currency?.decimals ?? 18)\n )\n : ''\n )\n }\n debouncedAmountInputControls.flush()\n debouncedAmountOutputControls.flush()\n }, [quote, tradeType])\n\n const feeBreakdown = useMemo(() => {\n const chains = relayClient?.chains\n const fromChain = chains?.find((chain) => chain.id === fromToken?.chainId)\n const toChain = chains?.find((chain) => chain.id === toToken?.chainId)\n return fromToken && toToken && fromChain && toChain && quote\n ? parseFees(toChain, fromChain, quote)\n : null\n }, [quote, fromToken, toToken, relayClient])\n\n const totalAmount = BigInt(quote?.details?.currencyIn?.amount ?? 0n)\n\n const hasInsufficientBalance = Boolean(\n !fromBalanceErrorFetching &&\n totalAmount &&\n address &&\n (fromBalance ?? 0n) < totalAmount &&\n !hasAuxiliaryFundsSupport &&\n fromChainWalletVMSupported\n )\n\n const fetchQuoteErrorMessage = error\n ? error?.message\n ? (error?.message as string)\n : 'Unknown Error'\n : null\n const fetchQuoteDataErrorMessage = error\n ? (error as any)?.response?.data?.message\n ? ((error as any)?.response?.data.message as string)\n : 'Unknown Error'\n : null\n const isInsufficientLiquidityError = Boolean(\n fetchQuoteErrorMessage?.includes('No quotes available')\n )\n const isCapacityExceededError =\n fetchQuoteDataErrorMessage?.includes(\n 'Amount is higher than the available liquidity'\n ) || fetchQuoteDataErrorMessage?.includes('Insufficient relayer liquidity')\n const isCouldNotExecuteError =\n fetchQuoteDataErrorMessage?.includes('Could not execute')\n const highRelayerServiceFee = isHighRelayerServiceFeeUsd(quote)\n const relayerFeeProportion = calculateRelayerFeeProportionUsd(quote)\n const timeEstimate = calculatePriceTimeEstimate(quote?.details)\n\n const recipientWalletSupportsChain = useIsWalletCompatible(\n toChain?.id,\n recipient,\n linkedWallets,\n onAnalyticEvent\n )\n\n const isSameCurrencySameRecipientSwap =\n fromToken?.address === toToken?.address &&\n fromToken?.chainId === toToken?.chainId &&\n address === recipient\n\n const ctaCopy = useSwapButtonCta({\n fromToken,\n toToken,\n multiWalletSupportEnabled,\n isValidFromAddress,\n fromChainWalletVMSupported,\n isValidToAddress,\n toChainWalletVMSupported,\n fromChain,\n toChain,\n isSameCurrencySameRecipientSwap,\n debouncedInputAmountValue,\n debouncedOutputAmountValue,\n hasInsufficientBalance,\n isInsufficientLiquidityError,\n quote,\n operation: quote?.details?.operation\n })\n\n usePreviousValueChange(\n isCapacityExceededError,\n !isFetchingQuote,\n (capacityExceeded) => {\n if (capacityExceeded) {\n onAnalyticEvent?.(EventNames.CTA_MAX_CAPACITY_PROMPTED, {\n inputAmount: debouncedInputAmountValue,\n outputAmount: debouncedOutputAmountValue\n })\n }\n }\n )\n\n const swap = useCallback(async () => {\n let submittedEvents: string[] = []\n\n const swapErrorHandler = (\n error: any,\n currentSteps?: Execute['steps'] | null\n ) => {\n const errorMessage = errorToJSON(\n error?.response?.data?.message\n ? new Error(error?.response?.data?.message)\n : error\n )\n if (\n error &&\n ((typeof error.message === 'string' &&\n error.message.toLowerCase().includes('reject')) ||\n (typeof error === 'string' &&\n error.toLowerCase().includes('reject')) ||\n (typeof error === 'string' && error.includes('Approval Denied')) ||\n (typeof error === 'string' && error.includes('denied transaction')) ||\n (typeof error.message === 'string' &&\n error.message.includes('Approval Denied')) ||\n (typeof error.message === 'string' &&\n error.message.includes('Plugin Closed')) ||\n (typeof error.message === 'string' &&\n error.message.includes('denied transaction')) ||\n (typeof error.message === 'string' &&\n error.message.includes('Failed to initialize request') &&\n fromChain?.id === 2741)) // Abstract @TODO: remove once privy improves handling rejected transactions\n ) {\n // Close the transaction modal if the user rejects the tx\n setTransactionModalOpen(false)\n onAnalyticEvent?.(EventNames.USER_REJECTED_WALLET, {\n error_message: errorMessage\n })\n return\n }\n\n const { step, stepItem } = getCurrentStep(currentSteps)\n const swapEventData = {\n ...getSwapEventData(\n quote?.details,\n quote?.fees,\n currentSteps ?? null,\n linkedWallet?.connector,\n quoteParameters\n ),\n error_message: errorMessage\n }\n const isApproval = step?.id === 'approve'\n const errorEvent = isApproval\n ? EventNames.APPROVAL_ERROR\n : EventNames.DEPOSIT_ERROR\n\n //Filter out receipt/deposit transaction errors, those are approval/deposit errors\n const isTransactionConfirmationError =\n (error &&\n typeof error.message === 'string' &&\n error.message.includes('TransactionConfirmationError')) ||\n (error.name && error.name.includes('TransactionConfirmationError'))\n if (\n stepItem?.receipt &&\n stepItem.check &&\n !isTransactionConfirmationError &&\n (typeof stepItem.receipt === 'object' && 'status' in stepItem.receipt\n ? stepItem.receipt.status !== 'reverted'\n : true) &&\n (!stepItem.checkStatus || stepItem.checkStatus !== 'unknown')\n ) {\n //In some cases there's a race condition where an error is thrown before the steps get a chance to call\n //the callback which triggers the success event. This is a workaround to ensure the success event is triggered when\n //we have a receipt and require a fill check if we haven't already send the success event.\n const successEvent = isApproval\n ? EventNames.APPROVAL_SUCCESS\n : EventNames.DEPOSIT_SUCCESS\n if (!submittedEvents.includes(successEvent)) {\n onAnalyticEvent?.(successEvent, swapEventData)\n submittedEvents.push(successEvent)\n //To preserve the order of events we need to delay sending the fill error event but mark that we did send it to avoid duplicates\n setTimeout(() => {\n onAnalyticEvent?.(EventNames.FILL_ERROR, swapEventData)\n }, 20)\n } else {\n onAnalyticEvent?.(EventNames.FILL_ERROR, swapEventData)\n }\n } else if (\n !stepItem?.receipt ||\n (typeof stepItem.receipt === 'object' &&\n 'status' in stepItem.receipt &&\n stepItem.receipt.status === 'reverted')\n ) {\n onAnalyticEvent?.(errorEvent, swapEventData)\n } else {\n onAnalyticEvent?.(EventNames.SWAP_ERROR, swapEventData)\n }\n\n haptic('error')\n setSwapError(errorMessage)\n onSwapError?.(errorMessage, { ...quote, steps: currentSteps } as Execute)\n }\n\n try {\n const swapEventData = getSwapEventData(\n quote?.details,\n quote?.fees,\n quote?.steps ? (quote?.steps as Execute['steps']) : null,\n linkedWallet?.connector,\n quoteParameters\n )\n onAnalyticEvent?.(EventNames.SWAP_CTA_CLICKED, swapEventData)\n setWaitingForSteps(true)\n\n if (!executeSwap) {\n throw new Error('Missing a quote')\n }\n\n if (!wallet && !walletClient.data) {\n throw new Error('Missing a wallet')\n }\n\n if (recipientMatchesKnownToken) {\n throw new Error('Recipient address is a token contract, not a wallet')\n }\n\n setSteps(quote?.steps as Execute['steps'])\n setQuoteInProgress(quote as Execute)\n setTransactionModalOpen(true)\n\n const _wallet =\n wallet ?? adaptViemWallet(walletClient.data as WalletClient)\n\n const activeWalletChainId = await _wallet?.getChainId()\n const activeWalletChain = relayClient?.chains?.find(\n (chain) => chain.id === activeWalletChainId\n )\n let targetChainId = fromToken?.chainId\n //Special case for Hyperliquid, to sign txs on an evm chain\n if (fromToken?.chainId === 1337) {\n targetChainId =\n activeWalletChain?.vmType !== 'evm' ? 1 : activeWalletChainId\n }\n\n if (fromToken && targetChainId && targetChainId !== activeWalletChainId) {\n onAnalyticEvent?.(EventNames.SWAP_SWITCH_NETWORK, {\n activeWalletChainId,\n ...swapEventData\n })\n await _wallet?.switchChain(targetChainId)\n }\n\n let _currentSteps: Execute['steps'] | undefined = undefined\n\n const execPromise = executeSwap(({ steps: currentSteps }) => {\n setSteps(currentSteps)\n _currentSteps = currentSteps\n\n const { step, stepItem } = getCurrentStep(currentSteps)\n const swapEventData = getSwapEventData(\n quote?.details,\n quote?.fees,\n currentSteps,\n linkedWallet?.connector,\n quoteParameters\n )\n if (step && stepItem) {\n //@ts-ignore\n const isApproval = step.id === 'approve' || step.id === 'approval'\n let submittedEvent = isApproval\n ? EventNames.APPROVAL_SUBMITTED\n : EventNames.DEPOSIT_SUBMITTED\n const successEvent = isApproval\n ? EventNames.APPROVAL_SUCCESS\n : EventNames.DEPOSIT_SUCCESS\n const isBatchTransaction = Boolean(\n Array.isArray(step.items) &&\n step.items.length > 1 &&\n wallet?.handleBatchTransactionStep\n )\n if (!isApproval && isBatchTransaction) {\n submittedEvent = EventNames.BATCH_TX_SUBMITTED\n }\n if (\n !submittedEvents.includes(submittedEvent) &&\n !stepItem.receipt &&\n stepItem?.txHashes &&\n stepItem?.txHashes?.length > 0\n ) {\n submittedEvents.push(submittedEvent)\n onAnalyticEvent?.(submittedEvent, swapEventData)\n } else if (\n !submittedEvents.includes(successEvent) &&\n ((stepItem.receipt &&\n !(\n typeof stepItem.receipt === 'object' &&\n 'status' in stepItem.receipt &&\n stepItem.receipt.status === 'reverted'\n )) ||\n stepItem.checkStatus === 'pending')\n ) {\n onAnalyticEvent?.(successEvent, swapEventData)\n submittedEvents.push(successEvent)\n }\n\n if (\n stepItem.status === 'complete' &&\n stepItem.check &&\n !submittedEvents.includes(EventNames.FILL_SUCCESS)\n ) {\n //Sometimes a fill may be quicker than the tx receipt is available, so we need to handle this scenario\n if (\n !submittedEvents.includes(EventNames.DEPOSIT_SUCCESS) &&\n !isBatchTransaction\n ) {\n onAnalyticEvent?.(EventNames.DEPOSIT_SUCCESS, swapEventData)\n submittedEvents.push(EventNames.DEPOSIT_SUCCESS)\n //To preserve the order of events we need to delay sending the fill success event but mark that we did send it to avoid duplicates\n setTimeout(() => {\n onAnalyticEvent?.(EventNames.FILL_SUCCESS, swapEventData)\n }, 20)\n } else {\n onAnalyticEvent?.(EventNames.FILL_SUCCESS, swapEventData)\n }\n submittedEvents.push(EventNames.FILL_SUCCESS)\n }\n } else if (\n currentSteps?.every((step) =>\n step.items?.every((item) => item.status === 'complete')\n ) &&\n !submittedEvents.includes(EventNames.FILL_SUCCESS)\n ) {\n //Sometimes a fill may be quicker than the tx receipt is available, so we need to handle this scenario\n if (\n !submittedEvents.includes(EventNames.DEPOSIT_SUCCESS) &&\n !submittedEvents.includes(EventNames.BATCH_TX_SUBMITTED)\n ) {\n onAnalyticEvent?.(EventNames.DEPOSIT_SUCCESS, swapEventData)\n submittedEvents.push(EventNames.DEPOSIT_SUCCESS)\n //To preserve the order of events we need to delay sending the fill success event but mark that we did send it to avoid duplicates\n setTimeout(() => {\n onAnalyticEvent?.(EventNames.FILL_SUCCESS, swapEventData)\n }, 20)\n } else {\n onAnalyticEvent?.(EventNames.FILL_SUCCESS, swapEventData)\n }\n submittedEvents.push(EventNames.FILL_SUCCESS)\n }\n })\n\n // Store the AbortController for potential cancellation immediately\n if (\n execPromise &&\n typeof execPromise === 'object' &&\n 'abortController' in execPromise\n ) {\n setAbortController((execPromise as any).abortController)\n }\n\n execPromise\n ?.catch((error: any) => {\n swapErrorHandler(error, _currentSteps)\n })\n .finally(() => {\n setWaitingForSteps(false)\n setAbortController(null)\n invalidateBalanceQueries()\n })\n } catch (error: any) {\n swapErrorHandler(error)\n setWaitingForSteps(false)\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [\n relayClient,\n address,\n connector,\n wallet,\n walletClient,\n fromToken,\n toToken,\n customToAddress,\n recipient,\n debouncedInputAmountValue,\n debouncedOutputAmountValue,\n tradeType,\n waitingForSteps,\n executeSwap,\n setSteps,\n setQuoteInProgress,\n invalidateBalanceQueries,\n linkedWallet,\n abortController,\n recipientMatchesKnownToken\n ])\n\n return (\n <>\n {children({\n quote,\n steps,\n setSteps,\n swap,\n transactionModalOpen,\n feeBreakdown,\n fromToken,\n setFromToken,\n toToken,\n setToToken,\n swapError,\n error,\n toDisplayName,\n address,\n recipient,\n customToAddress,\n setCustomToAddress,\n tradeType,\n setTradeType,\n details,\n isSameCurrencySameRecipientSwap,\n debouncedInputAmountValue,\n debouncedAmountInputControls,\n setAmountInputValue,\n amountInputValue,\n amountOutputValue,\n debouncedOutputAmountValue,\n debouncedAmountOutputControls,\n setAmountOutputValue,\n toBalance,\n toBalancePending,\n isLoadingToBalance,\n isFetchingQuote,\n isLoadingFromBalance,\n fromBalance,\n fromBalancePending,\n highRelayerServiceFee,\n relayerFeeProportion,\n hasInsufficientBalance,\n isInsufficientLiquidityError,\n isCapacityExceededError,\n isCouldNotExecuteError,\n ctaCopy,\n isFromNative,\n slippageTolerance: currentSlippageTolerance,\n timeEstimate,\n isSvmSwap,\n isBvmSwap,\n isValidFromAddress,\n isValidToAddress,\n supportedWalletVMs,\n fromChainWalletVMSupported,\n toChainWalletVMSupported,\n isRecipientLinked,\n recipientWalletSupportsChain,\n gasTopUpEnabled,\n setGasTopUpEnabled,\n gasTopUpBalance,\n gasTopUpRequired,\n gasTopUpAmount,\n gasTopUpAmountUsd,\n invalidateBalanceQueries,\n invalidateQuoteQuery,\n setDetails,\n setSwapError,\n quoteInProgress,\n setQuoteInProgress,\n linkedWallet,\n quoteParameters,\n abortController,\n fromTokenPriceData,\n toTokenPriceData,\n isLoadingFromTokenPrice,\n isLoadingToTokenPrice\n })}\n </>\n )\n}\n\nexport default SwapWidgetRenderer\n"]}
|
|
@@ -15,7 +15,7 @@ const WidgetContainer = ({ steps, setSteps, quoteInProgress, setQuoteInProgress,
|
|
|
15
15
|
}, fromChain: fromChain, toChain: toChain, fromToken: fromToken, toToken: toToken, slippageTolerance: slippageTolerance, address: address, onAnalyticEvent: onAnalyticEvent, onSuccess: onSwapSuccess, onSwapValidating: onSwapValidating, wallet: wallet, linkedWallets: linkedWallets, multiWalletSupportEnabled: multiWalletSupportEnabled, invalidateQuoteQuery: invalidateQuoteQuery }), (0, jsx_runtime_1.jsx)(DepositAddressModal_js_1.DepositAddressModal, { open: depositAddressModalOpen, onOpenChange: (open) => {
|
|
16
16
|
setDepositAddressModalOpen(open);
|
|
17
17
|
onDepositAddressModalOpenChange(open);
|
|
18
|
-
}, fromChain: fromChain, fromToken: fromToken, toToken: toToken, debouncedInputAmountValue: debouncedInputAmountValue, debouncedOutputAmountValue: debouncedOutputAmountValue, address: address, recipient: recipient, onAnalyticEvent: onAnalyticEvent, onSuccess: onSwapSuccess, invalidateBalanceQueries: invalidateBalanceQueries })] })) : null, (0, jsx_runtime_1.jsx)(CustomAddressModal_js_1.CustomAddressModal, { open: addressModalOpen, toAddress: customToAddress, toChain: toChain, isConnected: wallet !== undefined || isConnected ? true : false, linkedWallets: linkedWallets ?? [], multiWalletSupportEnabled: multiWalletSupportEnabled, wallet: wallet, onAnalyticEvent: onAnalyticEvent, onOpenChange: (open) => {
|
|
18
|
+
}, fromChain: fromChain, fromToken: fromToken, toToken: toToken, debouncedInputAmountValue: debouncedInputAmountValue, debouncedOutputAmountValue: debouncedOutputAmountValue, address: address, recipient: recipient, onAnalyticEvent: onAnalyticEvent, onSuccess: onSwapSuccess, invalidateBalanceQueries: invalidateBalanceQueries })] })) : null, (0, jsx_runtime_1.jsx)(CustomAddressModal_js_1.CustomAddressModal, { open: addressModalOpen, toToken: toToken, toAddress: customToAddress, toChain: toChain, isConnected: wallet !== undefined || isConnected ? true : false, linkedWallets: linkedWallets ?? [], multiWalletSupportEnabled: multiWalletSupportEnabled, wallet: wallet, onAnalyticEvent: onAnalyticEvent, onOpenChange: (open) => {
|
|
19
19
|
setAddressModalOpen(open);
|
|
20
20
|
}, onConfirmed: (address) => {
|
|
21
21
|
setCustomToAddress(address);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WidgetContainer.js","sourceRoot":"","sources":["../../../../src/components/widgets/WidgetContainer.tsx"],"names":[],"mappings":"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","sourcesContent":["import { type FC, type ReactNode } from 'react'\nimport { CustomAddressModal } from '../common/CustomAddressModal.js'\nimport { TransactionModal } from '../common/TransactionModal/TransactionModal.js'\nimport { DepositAddressModal } from '../common/TransactionModal/DepositAddressModal.js'\nimport { useMounted } from '../../hooks/index.js'\nimport type { ChildrenProps } from './SwapWidgetRenderer.js'\nimport type {\n RelayChain,\n AdaptedWallet,\n Execute\n} from '@relayprotocol/relay-sdk'\nimport { useAccount } from 'wagmi'\nimport type { LinkedWallet } from '../../types/index.js'\n\nexport type WidgetContainerProps = {\n steps: Execute['steps'] | null\n transactionModalOpen: boolean\n depositAddressModalOpen: boolean\n addressModalOpen: boolean\n toChain?: RelayChain\n fromChain?: RelayChain\n wallet?: AdaptedWallet\n linkedWallets?: LinkedWallet[]\n multiWalletSupportEnabled?: boolean\n setTransactionModalOpen: React.Dispatch<React.SetStateAction<boolean>>\n setDepositAddressModalOpen: React.Dispatch<React.SetStateAction<boolean>>\n setAddressModalOpen: React.Dispatch<React.SetStateAction<boolean>>\n children: () => ReactNode\n onTransactionModalOpenChange: (open: boolean) => void\n onDepositAddressModalOpenChange: (open: boolean) => void\n onAnalyticEvent?: (eventName: string, data?: any) => void\n onSwapSuccess?: (data: Execute) => void\n onSwapValidating?: (data: Execute) => void\n invalidateBalanceQueries: () => void\n invalidateQuoteQuery: () => void\n} & Pick<\n ChildrenProps,\n | 'fromToken'\n | 'toToken'\n | 'amountInputValue'\n | 'amountOutputValue'\n | 'debouncedInputAmountValue'\n | 'debouncedOutputAmountValue'\n | 'recipient'\n | 'customToAddress'\n | 'tradeType'\n | 'address'\n | 'setCustomToAddress'\n | 'timeEstimate'\n | 'slippageTolerance'\n | 'setSteps'\n | 'swapError'\n | 'setSwapError'\n | 'quoteInProgress'\n | 'setQuoteInProgress'\n>\n\nconst WidgetContainer: FC<WidgetContainerProps> = ({\n steps,\n setSteps,\n quoteInProgress,\n setQuoteInProgress,\n transactionModalOpen,\n setTransactionModalOpen,\n depositAddressModalOpen,\n setDepositAddressModalOpen,\n addressModalOpen,\n setAddressModalOpen,\n children,\n fromChain,\n fromToken,\n toToken,\n debouncedInputAmountValue,\n debouncedOutputAmountValue,\n customToAddress,\n address,\n slippageTolerance,\n timeEstimate,\n recipient,\n toChain,\n wallet,\n linkedWallets,\n multiWalletSupportEnabled,\n swapError,\n setSwapError,\n onTransactionModalOpenChange,\n onDepositAddressModalOpenChange,\n onSwapSuccess,\n onSwapValidating,\n onAnalyticEvent,\n invalidateBalanceQueries,\n invalidateQuoteQuery,\n setCustomToAddress\n}) => {\n const isMounted = useMounted()\n const { isConnected } = useAccount()\n\n return (\n <div className=\"relay-kit-reset\">\n {children()}\n {isMounted ? (\n <>\n <TransactionModal\n steps={steps}\n setSteps={setSteps}\n quote={quoteInProgress}\n setQuote={setQuoteInProgress}\n swapError={swapError}\n setSwapError={setSwapError}\n open={transactionModalOpen}\n onOpenChange={(open) => {\n setTransactionModalOpen(open)\n onTransactionModalOpenChange(open)\n }}\n fromChain={fromChain}\n toChain={toChain}\n fromToken={fromToken}\n toToken={toToken}\n slippageTolerance={slippageTolerance}\n address={address}\n onAnalyticEvent={onAnalyticEvent}\n onSuccess={onSwapSuccess}\n onSwapValidating={onSwapValidating}\n wallet={wallet}\n linkedWallets={linkedWallets}\n multiWalletSupportEnabled={multiWalletSupportEnabled}\n invalidateQuoteQuery={invalidateQuoteQuery}\n />\n <DepositAddressModal\n open={depositAddressModalOpen}\n onOpenChange={(open) => {\n setDepositAddressModalOpen(open)\n onDepositAddressModalOpenChange(open)\n }}\n fromChain={fromChain}\n fromToken={fromToken}\n toToken={toToken}\n debouncedInputAmountValue={debouncedInputAmountValue}\n debouncedOutputAmountValue={debouncedOutputAmountValue}\n address={address}\n recipient={recipient}\n onAnalyticEvent={onAnalyticEvent}\n onSuccess={onSwapSuccess}\n invalidateBalanceQueries={invalidateBalanceQueries}\n />\n </>\n ) : null}\n\n <CustomAddressModal\n open={addressModalOpen}\n toAddress={customToAddress}\n toChain={toChain}\n isConnected={wallet !== undefined || isConnected ? true : false}\n linkedWallets={linkedWallets ?? []}\n multiWalletSupportEnabled={multiWalletSupportEnabled}\n wallet={wallet}\n onAnalyticEvent={onAnalyticEvent}\n onOpenChange={(open) => {\n setAddressModalOpen(open)\n }}\n onConfirmed={(address) => {\n setCustomToAddress(address)\n }}\n onClear={() => {\n setCustomToAddress(undefined)\n }}\n />\n </div>\n )\n}\n\nexport default WidgetContainer\n"]}
|
|
1
|
+
{"version":3,"file":"WidgetContainer.js","sourceRoot":"","sources":["../../../../src/components/widgets/WidgetContainer.tsx"],"names":[],"mappings":"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","sourcesContent":["import { type FC, type ReactNode } from 'react'\nimport { CustomAddressModal } from '../common/CustomAddressModal.js'\nimport { TransactionModal } from '../common/TransactionModal/TransactionModal.js'\nimport { DepositAddressModal } from '../common/TransactionModal/DepositAddressModal.js'\nimport { useMounted } from '../../hooks/index.js'\nimport type { ChildrenProps } from './SwapWidgetRenderer.js'\nimport type {\n RelayChain,\n AdaptedWallet,\n Execute\n} from '@relayprotocol/relay-sdk'\nimport { useAccount } from 'wagmi'\nimport type { LinkedWallet } from '../../types/index.js'\n\nexport type WidgetContainerProps = {\n steps: Execute['steps'] | null\n transactionModalOpen: boolean\n depositAddressModalOpen: boolean\n addressModalOpen: boolean\n toChain?: RelayChain\n fromChain?: RelayChain\n wallet?: AdaptedWallet\n linkedWallets?: LinkedWallet[]\n multiWalletSupportEnabled?: boolean\n setTransactionModalOpen: React.Dispatch<React.SetStateAction<boolean>>\n setDepositAddressModalOpen: React.Dispatch<React.SetStateAction<boolean>>\n setAddressModalOpen: React.Dispatch<React.SetStateAction<boolean>>\n children: () => ReactNode\n onTransactionModalOpenChange: (open: boolean) => void\n onDepositAddressModalOpenChange: (open: boolean) => void\n onAnalyticEvent?: (eventName: string, data?: any) => void\n onSwapSuccess?: (data: Execute) => void\n onSwapValidating?: (data: Execute) => void\n invalidateBalanceQueries: () => void\n invalidateQuoteQuery: () => void\n} & Pick<\n ChildrenProps,\n | 'fromToken'\n | 'toToken'\n | 'amountInputValue'\n | 'amountOutputValue'\n | 'debouncedInputAmountValue'\n | 'debouncedOutputAmountValue'\n | 'recipient'\n | 'customToAddress'\n | 'tradeType'\n | 'address'\n | 'setCustomToAddress'\n | 'timeEstimate'\n | 'slippageTolerance'\n | 'setSteps'\n | 'swapError'\n | 'setSwapError'\n | 'quoteInProgress'\n | 'setQuoteInProgress'\n>\n\nconst WidgetContainer: FC<WidgetContainerProps> = ({\n steps,\n setSteps,\n quoteInProgress,\n setQuoteInProgress,\n transactionModalOpen,\n setTransactionModalOpen,\n depositAddressModalOpen,\n setDepositAddressModalOpen,\n addressModalOpen,\n setAddressModalOpen,\n children,\n fromChain,\n fromToken,\n toToken,\n debouncedInputAmountValue,\n debouncedOutputAmountValue,\n customToAddress,\n address,\n slippageTolerance,\n timeEstimate,\n recipient,\n toChain,\n wallet,\n linkedWallets,\n multiWalletSupportEnabled,\n swapError,\n setSwapError,\n onTransactionModalOpenChange,\n onDepositAddressModalOpenChange,\n onSwapSuccess,\n onSwapValidating,\n onAnalyticEvent,\n invalidateBalanceQueries,\n invalidateQuoteQuery,\n setCustomToAddress\n}) => {\n const isMounted = useMounted()\n const { isConnected } = useAccount()\n\n return (\n <div className=\"relay-kit-reset\">\n {children()}\n {isMounted ? (\n <>\n <TransactionModal\n steps={steps}\n setSteps={setSteps}\n quote={quoteInProgress}\n setQuote={setQuoteInProgress}\n swapError={swapError}\n setSwapError={setSwapError}\n open={transactionModalOpen}\n onOpenChange={(open) => {\n setTransactionModalOpen(open)\n onTransactionModalOpenChange(open)\n }}\n fromChain={fromChain}\n toChain={toChain}\n fromToken={fromToken}\n toToken={toToken}\n slippageTolerance={slippageTolerance}\n address={address}\n onAnalyticEvent={onAnalyticEvent}\n onSuccess={onSwapSuccess}\n onSwapValidating={onSwapValidating}\n wallet={wallet}\n linkedWallets={linkedWallets}\n multiWalletSupportEnabled={multiWalletSupportEnabled}\n invalidateQuoteQuery={invalidateQuoteQuery}\n />\n <DepositAddressModal\n open={depositAddressModalOpen}\n onOpenChange={(open) => {\n setDepositAddressModalOpen(open)\n onDepositAddressModalOpenChange(open)\n }}\n fromChain={fromChain}\n fromToken={fromToken}\n toToken={toToken}\n debouncedInputAmountValue={debouncedInputAmountValue}\n debouncedOutputAmountValue={debouncedOutputAmountValue}\n address={address}\n recipient={recipient}\n onAnalyticEvent={onAnalyticEvent}\n onSuccess={onSwapSuccess}\n invalidateBalanceQueries={invalidateBalanceQueries}\n />\n </>\n ) : null}\n\n <CustomAddressModal\n open={addressModalOpen}\n toToken={toToken}\n toAddress={customToAddress}\n toChain={toChain}\n isConnected={wallet !== undefined || isConnected ? true : false}\n linkedWallets={linkedWallets ?? []}\n multiWalletSupportEnabled={multiWalletSupportEnabled}\n wallet={wallet}\n onAnalyticEvent={onAnalyticEvent}\n onOpenChange={(open) => {\n setAddressModalOpen(open)\n }}\n onConfirmed={(address) => {\n setCustomToAddress(address)\n }}\n onClear={() => {\n setCustomToAddress(undefined)\n }}\n />\n </div>\n )\n}\n\nexport default WidgetContainer\n"]}
|
|
@@ -59,6 +59,7 @@ exports.EventNames = {
|
|
|
59
59
|
CONNECT_WALLET_CLICKED: 'CONNECT_WALLET_CLICKED',
|
|
60
60
|
TRANSACTION_VALIDATING: 'TRANSACTION_VALIDATING',
|
|
61
61
|
ADDRESS_MODAL_OPEN: 'ADDRESS_MODAL_OPEN',
|
|
62
|
-
ADDRESS_MODAL_CONFIRMED: 'ADDRESS_MODAL_CONFIRMED'
|
|
62
|
+
ADDRESS_MODAL_CONFIRMED: 'ADDRESS_MODAL_CONFIRMED',
|
|
63
|
+
ADDRESS_MODAL_RECENT_SELECTED: 'ADDRESS_MODAL_RECENT_SELECTED'
|
|
63
64
|
};
|
|
64
65
|
//# sourceMappingURL=events.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"events.js","sourceRoot":"","sources":["../../../src/constants/events.ts"],"names":[],"mappings":";;;AAAa,QAAA,UAAU,GAAG;IACxB,gBAAgB,EAAE,kBAAkB;IACpC,WAAW,EAAE,aAAa;IAC1B,UAAU,EAAE,YAAY;IACxB,kBAAkB,EAAE,oBAAoB;IACxC,mBAAmB,EAAE,qBAAqB;IAC1C,0BAA0B,EAAE,4BAA4B;IACxD,mBAAmB,EAAE,qBAAqB;IAC1C,eAAe,EAAE,iBAAiB;IAClC,cAAc,EAAE,gBAAgB;IAChC,2BAA2B,EAAE,6BAA6B;IAC1D,0BAA0B,EAAE,4BAA4B;IACxD,4BAA4B,EAAE,8BAA8B;IAC5D,0BAA0B,EAAE,4BAA4B;IACxD,eAAe,EAAE,iBAAiB;IAClC,iBAAiB,EAAE,mBAAmB;IACtC,uBAAuB,EAAE,yBAAyB;IAClD,iBAAiB,EAAE,mBAAmB;IACtC,sBAAsB,EAAE,wBAAwB;IAChD,iBAAiB,EAAE,mBAAmB;IACtC,kBAAkB,EAAE,oBAAoB;IACxC,gBAAgB,EAAE,kBAAkB;IACpC,cAAc,EAAE,gBAAgB;IAChC,eAAe,EAAE,iBAAiB;IAClC,aAAa,EAAE,eAAe;IAC9B,kBAAkB,EAAE,oBAAoB;IACxC,YAAY,EAAE,cAAc;IAC5B,UAAU,EAAE,YAAY;IACxB,YAAY,EAAE,cAAc;IAC5B,mBAAmB,EAAE,qBAAqB;IAC1C,8BAA8B,EAAE,gCAAgC;IAChE,4BAA4B,EAAE,8BAA8B;IAC5D,wBAAwB,EAAE,0BAA0B;IACpD,yBAAyB,EAAE,2BAA2B;IACtD,sBAAsB,EAAE,wBAAwB;IAChD,oBAAoB,EAAE,sBAAsB;IAC5C,qBAAqB,EAAE,uBAAuB;IAC9C,kBAAkB,EAAE,oBAAoB;IACxC,0BAA0B,EAAE,4BAA4B;IACxD,yBAAyB,EAAE,2BAA2B;IACtD,iBAAiB,EAAE,mBAAmB;IACtC,kBAAkB,EAAE,oBAAoB;IACxC,kBAAkB,EAAE,oBAAoB;IACxC,0BAA0B,EAAE,4BAA4B;IACxD,6BAA6B,EAAE,+BAA+B;IAC9D,2BAA2B,EAAE,6BAA6B;IAC1D,8BAA8B,EAAE,gCAAgC;IAChE,cAAc,EAAE,gBAAgB;IAChC,YAAY,EAAE,cAAc;IAC5B,0BAA0B,EAAE,4BAA4B;IACxD,iBAAiB,EAAE,mBAAmB;IACtC,eAAe,EAAE,iBAAiB;IAClC,aAAa,EAAE,eAAe;IAC9B,eAAe,EAAE,iBAAiB;IAElC,oBAAoB,EAAE,sBAAsB;IAC5C,sBAAsB,EAAE,wBAAwB;IAChD,sBAAsB,EAAE,wBAAwB;IAChD,kBAAkB,EAAE,oBAAoB;IACxC,uBAAuB,EAAE,yBAAyB;
|
|
1
|
+
{"version":3,"file":"events.js","sourceRoot":"","sources":["../../../src/constants/events.ts"],"names":[],"mappings":";;;AAAa,QAAA,UAAU,GAAG;IACxB,gBAAgB,EAAE,kBAAkB;IACpC,WAAW,EAAE,aAAa;IAC1B,UAAU,EAAE,YAAY;IACxB,kBAAkB,EAAE,oBAAoB;IACxC,mBAAmB,EAAE,qBAAqB;IAC1C,0BAA0B,EAAE,4BAA4B;IACxD,mBAAmB,EAAE,qBAAqB;IAC1C,eAAe,EAAE,iBAAiB;IAClC,cAAc,EAAE,gBAAgB;IAChC,2BAA2B,EAAE,6BAA6B;IAC1D,0BAA0B,EAAE,4BAA4B;IACxD,4BAA4B,EAAE,8BAA8B;IAC5D,0BAA0B,EAAE,4BAA4B;IACxD,eAAe,EAAE,iBAAiB;IAClC,iBAAiB,EAAE,mBAAmB;IACtC,uBAAuB,EAAE,yBAAyB;IAClD,iBAAiB,EAAE,mBAAmB;IACtC,sBAAsB,EAAE,wBAAwB;IAChD,iBAAiB,EAAE,mBAAmB;IACtC,kBAAkB,EAAE,oBAAoB;IACxC,gBAAgB,EAAE,kBAAkB;IACpC,cAAc,EAAE,gBAAgB;IAChC,eAAe,EAAE,iBAAiB;IAClC,aAAa,EAAE,eAAe;IAC9B,kBAAkB,EAAE,oBAAoB;IACxC,YAAY,EAAE,cAAc;IAC5B,UAAU,EAAE,YAAY;IACxB,YAAY,EAAE,cAAc;IAC5B,mBAAmB,EAAE,qBAAqB;IAC1C,8BAA8B,EAAE,gCAAgC;IAChE,4BAA4B,EAAE,8BAA8B;IAC5D,wBAAwB,EAAE,0BAA0B;IACpD,yBAAyB,EAAE,2BAA2B;IACtD,sBAAsB,EAAE,wBAAwB;IAChD,oBAAoB,EAAE,sBAAsB;IAC5C,qBAAqB,EAAE,uBAAuB;IAC9C,kBAAkB,EAAE,oBAAoB;IACxC,0BAA0B,EAAE,4BAA4B;IACxD,yBAAyB,EAAE,2BAA2B;IACtD,iBAAiB,EAAE,mBAAmB;IACtC,kBAAkB,EAAE,oBAAoB;IACxC,kBAAkB,EAAE,oBAAoB;IACxC,0BAA0B,EAAE,4BAA4B;IACxD,6BAA6B,EAAE,+BAA+B;IAC9D,2BAA2B,EAAE,6BAA6B;IAC1D,8BAA8B,EAAE,gCAAgC;IAChE,cAAc,EAAE,gBAAgB;IAChC,YAAY,EAAE,cAAc;IAC5B,0BAA0B,EAAE,4BAA4B;IACxD,iBAAiB,EAAE,mBAAmB;IACtC,eAAe,EAAE,iBAAiB;IAClC,aAAa,EAAE,eAAe;IAC9B,eAAe,EAAE,iBAAiB;IAElC,oBAAoB,EAAE,sBAAsB;IAC5C,sBAAsB,EAAE,wBAAwB;IAChD,sBAAsB,EAAE,wBAAwB;IAChD,kBAAkB,EAAE,oBAAoB;IACxC,uBAAuB,EAAE,yBAAyB;IAClD,6BAA6B,EAAE,+BAA+B;CAC/D,CAAA","sourcesContent":["export const EventNames = {\n SWAP_CTA_CLICKED: 'SWAP_CTA_CLICKED',\n QUOTE_ERROR: 'QUOTE_ERROR',\n SWAP_ERROR: 'SWAP_ERROR',\n SWAP_INPUT_FOCUSED: 'SWAP_INPUT_FOCUSED',\n SWAP_OUTPUT_FOCUSED: 'SWAP_OUTPUT_FOCUSED',\n SWAP_ADDRESS_MODAL_CLICKED: 'SWAP_ADDRESS_MODAL_CLICKED',\n SWAP_SWITCH_NETWORK: 'SWAP_SWITCH_NETWORK',\n QUOTE_REQUESTED: 'QUOTE_REQUESTED',\n QUOTE_RECEIVED: 'QUOTE_RECEIVED',\n SWAP_SLIPPAGE_TOLERANCE_SET: 'SWAP_SLIPPAGE_TOLERANCE_SET',\n DEPOSIT_ADDRESS_MODAL_OPEN: 'DEPOSIT_ADDRESS_MODAL_OPEN',\n DEPOSIT_ADDRESS_MODAL_CLOSED: 'DEPOSIT_ADDRESS_MODAL_CLOSED',\n DEPOSIT_ADDRESS_SWAP_ERROR: 'DEPOSIT_ADDRESS_SWAP_ERROR',\n SWAP_MODAL_OPEN: 'SWAP_MODAL_OPEN',\n SWAP_MODAL_CLOSED: 'SWAP_MODAL_CLOSED',\n SWAP_START_TOKEN_SELECT: 'SWAP_START_TOKEN_SELECT',\n SWAP_TOKEN_SELECT: 'SWAP_TOKEN_SELECT',\n SWAP_EXIT_TOKEN_SELECT: 'SWAP_EXIT_TOKEN_SELECT',\n DEPOSIT_SUBMITTED: 'DEPOSIT_SUBMITTED',\n APPROVAL_SUBMITTED: 'APPROVAL_SUBMITTED',\n APPROVAL_SUCCESS: 'APPROVAL_SUCCESS',\n APPROVAL_ERROR: 'APPROVAL_ERROR',\n DEPOSIT_SUCCESS: 'DEPOSIT_SUCCESS',\n DEPOSIT_ERROR: 'DEPOSIT_ERROR',\n BATCH_TX_SUBMITTED: 'BATCH_TX_SUBMITTED',\n FILL_SUCCESS: 'FILL_SUCCESS',\n FILL_ERROR: 'FILL_ERROR',\n SWAP_SUCCESS: 'SWAP_SUCCESS',\n SWAP_ROUTE_SELECTED: 'SWAP_ROUTE_SELECTED',\n TOKEN_SELECTOR_CONTRACT_SEARCH: 'TOKEN_SELECTOR_CONTRACT_SEARCH',\n CTA_SET_MAX_CAPACITY_CLICKED: 'CTA_SET_MAX_CAPACITY_CLICKED',\n CTA_SWITCH_ROUTE_CLICKED: 'CTA_SWITCH_ROUTE_CLICKED',\n CTA_MAX_CAPACITY_PROMPTED: 'CTA_MAX_CAPACITY_PROMPTED',\n WALLET_SELECTOR_SELECT: 'WALLET_SELECTOR_SELECT',\n WALLET_SELECTOR_OPEN: 'WALLET_SELECTOR_OPEN',\n WALLET_SELECTOR_CLOSE: 'WALLET_SELECTOR_CLOSE',\n MAX_AMOUNT_CLICKED: 'MAX_AMOUNT_CLICKED',\n CURRENCY_STEP_CHAIN_FILTER: 'CURRENCY_STEP_CHAIN_FILTER',\n UNVERIFIED_TOKEN_ACCEPTED: 'UNVERIFIED_TOKEN_ACCEPTED',\n ONRAMP_MODAL_OPEN: 'ONRAMP_MODAL_OPEN',\n ONRAMP_MODAL_CLOSE: 'ONRAMP_MODAL_CLOSE',\n ONRAMP_CTA_CLICKED: 'ONRAMP_CTA_CLICKED',\n ONRAMPING_MOONPAY_TX_START: 'ONRAMPING_MOONPAY_TX_START',\n ONRAMPING_MOONPAY_TX_COMPLETE: 'ONRAMPING_MOONPAY_TX_COMPLETE',\n ONRAMPING_MOONPAY_TX_FAILED: 'ONRAMPING_MOONPAY_TX_FAILED',\n ONRAMPING_MOONPAY_TX_API_ERROR: 'ONRAMPING_MOONPAY_TX_API_ERROR',\n ONRAMP_SUCCESS: 'ONRAMP_SUCCESS',\n ONRAMP_ERROR: 'ONRAMP_ERROR',\n ONRAMP_PASSTHROUGH_SUCCESS: 'ONRAMP_PASSTHROUGH_SUCCESS',\n GAS_TOP_UP_TOGGLE: 'GAS_TOP_UP_TOGGLE',\n AGW_CHECK_ERROR: 'AGW_CHECK_ERROR',\n CHAIN_STARRED: 'CHAIN_STARRED',\n CHAIN_UNSTARRED: 'CHAIN_UNSTARRED',\n //Common\n USER_REJECTED_WALLET: 'USER_REJECTED_WALLET',\n CONNECT_WALLET_CLICKED: 'CONNECT_WALLET_CLICKED',\n TRANSACTION_VALIDATING: 'TRANSACTION_VALIDATING',\n ADDRESS_MODAL_OPEN: 'ADDRESS_MODAL_OPEN',\n ADDRESS_MODAL_CONFIRMED: 'ADDRESS_MODAL_CONFIRMED',\n ADDRESS_MODAL_RECENT_SELECTED: 'ADDRESS_MODAL_RECENT_SELECTED'\n}\n"]}
|
|
@@ -12,7 +12,8 @@ exports.WalletChainRestricted = {
|
|
|
12
12
|
],
|
|
13
13
|
abstract: [2741],
|
|
14
14
|
ronin: [1, 56, 137, 42161, 8453, 2020],
|
|
15
|
-
porto: [8453, 42161, 56, 42220, 1, 10, 137, 80094]
|
|
15
|
+
porto: [8453, 42161, 56, 42220, 1, 10, 137, 80094],
|
|
16
|
+
robinhood: [1, 10, 137, 4663, 8453, 42161, 8253038, 792703809]
|
|
16
17
|
};
|
|
17
18
|
exports.WalletChainIncompatible = {
|
|
18
19
|
binance: [7777777, 8453],
|
|
@@ -24,6 +25,7 @@ exports.NormalizedWalletName = {
|
|
|
24
25
|
phantombtc: 'phantom',
|
|
25
26
|
magicedensol: 'magiceden',
|
|
26
27
|
roninwallet: 'ronin',
|
|
28
|
+
robinhoodwallet: 'robinhood',
|
|
27
29
|
portoevm: 'porto',
|
|
28
30
|
trusttron: 'trust',
|
|
29
31
|
coinbasewalletevm: 'coinbase',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"walletCompatibility.js","sourceRoot":"","sources":["../../../src/constants/walletCompatibility.ts"],"names":[],"mappings":";;;AAAa,QAAA,qBAAqB,GAA6B;IAC7D,OAAO,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,CAAC;IACjE,QAAQ,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,CAAC;IACrE,SAAS,EAAE;QACT,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK;KAC7E;IACD,OAAO,EAAE;QACP,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,OAAO;KACzE;IACD,QAAQ,EAAE,CAAC,IAAI,CAAC;IAChB,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC;IACtC,KAAK,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"walletCompatibility.js","sourceRoot":"","sources":["../../../src/constants/walletCompatibility.ts"],"names":[],"mappings":";;;AAAa,QAAA,qBAAqB,GAA6B;IAC7D,OAAO,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,CAAC;IACjE,QAAQ,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,CAAC;IACrE,SAAS,EAAE;QACT,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK;KAC7E;IACD,OAAO,EAAE;QACP,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,OAAO;KACzE;IACD,QAAQ,EAAE,CAAC,IAAI,CAAC;IAChB,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC;IACtC,KAAK,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,KAAK,CAAC;IAClD,SAAS,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,CAAC;CAC/D,CAAA;AAEY,QAAA,uBAAuB,GAA6B;IAC/D,OAAO,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC;IACxB,SAAS,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC;IAC1B,QAAQ,EAAE,CAAC,IAAI,CAAC;CACjB,CAAA;AAEY,QAAA,oBAAoB,GAA2B;IAC1D,UAAU,EAAE,SAAS;IACrB,UAAU,EAAE,SAAS;IACrB,YAAY,EAAE,WAAW;IACzB,WAAW,EAAE,OAAO;IACpB,eAAe,EAAE,WAAW;IAC5B,QAAQ,EAAE,OAAO;IACjB,SAAS,EAAE,OAAO;IAClB,iBAAiB,EAAE,UAAU;IAC7B,OAAO,EAAE,UAAU;CACpB,CAAA","sourcesContent":["export const WalletChainRestricted: Record<string, number[]> = {\n phantom: [1, 8453, 792703809, 137, 8253038, 101, 10143, 143, 999],\n backpack: [1, 8453, 137, 42161, 10, 10143, 80094, 9286185, 792703809],\n magiceden: [\n 1, 137, 8453, 33139, 8253038, 792703809, 1329, 2741, 42161, 80094, 56, 43114\n ],\n uniswap: [\n 1, 130, 42161, 43114, 8453, 81457, 56, 42220, 10, 137, 480, 324, 7777777\n ],\n abstract: [2741],\n ronin: [1, 56, 137, 42161, 8453, 2020],\n porto: [8453, 42161, 56, 42220, 1, 10, 137, 80094],\n robinhood: [1, 10, 137, 4663, 8453, 42161, 8253038, 792703809]\n}\n\nexport const WalletChainIncompatible: Record<string, number[]> = {\n binance: [7777777, 8453],\n binanceus: [7777777, 8453],\n coinbase: [4663]\n}\n\nexport const NormalizedWalletName: Record<string, string> = {\n phantomevm: 'phantom',\n phantombtc: 'phantom',\n magicedensol: 'magiceden',\n roninwallet: 'ronin',\n robinhoodwallet: 'robinhood',\n portoevm: 'porto',\n trusttron: 'trust',\n coinbasewalletevm: 'coinbase',\n baseevm: 'coinbase'\n}\n"]}
|
package/_cjs/src/hooks/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.useDisplayName = exports.useLighterAccount = exports.useTronBalance = exports.useTransactionCount = exports.useExplicitDeposit = exports.useHyperliquidAccountMode = exports.useHyperliquidBalance = exports.useGasTopUpRequired = exports.useInternalRelayChains = exports.useMoonPayTransaction = exports.useFallbackState = exports.useIsAGW = exports.useIsWalletCompatible = exports.useSupportedMoonPayCurrencyCode = exports.useIsPassthrough = exports.useIpAddress = exports.useMoonPayGeolocation = exports.useMoonPayCurrencies = exports.useAtomicBatchSupport = exports.useBitcoinBalance = exports.usePreviousValueChange = exports.useDisconnected = exports.useWalletAddress = exports.useMultiWalletBalances = exports.
|
|
3
|
+
exports.useKnownTokenContract = exports.useDisplayName = exports.useLighterAccount = exports.useTronBalance = exports.useTransactionCount = exports.useExplicitDeposit = exports.useHyperliquidAccountMode = exports.useHyperliquidBalance = exports.useGasTopUpRequired = exports.useInternalRelayChains = exports.useMoonPayTransaction = exports.useFallbackState = exports.useIsAGW = exports.useIsWalletCompatible = exports.useSupportedMoonPayCurrencyCode = exports.useIsPassthrough = exports.useIpAddress = exports.useMoonPayGeolocation = exports.useMoonPayCurrencies = exports.useAtomicBatchSupport = exports.useBitcoinBalance = exports.usePreviousValueChange = exports.useDisconnected = exports.useWalletAddress = exports.useMultiWalletBalances = exports.useSolanaBalance = exports.useCodexBalances = exports.useDebounceState = exports.useRelayClient = exports.useCurrencyBalance = exports.useENSResolver = exports.useMounted = void 0;
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
5
|
const useMounted_js_1 = tslib_1.__importDefault(require("./useMounted.js"));
|
|
6
6
|
exports.useMounted = useMounted_js_1.default;
|
|
@@ -12,8 +12,10 @@ const useRelayClient_js_1 = tslib_1.__importDefault(require("./useRelayClient.js
|
|
|
12
12
|
exports.useRelayClient = useRelayClient_js_1.default;
|
|
13
13
|
const useDebounceState_js_1 = tslib_1.__importDefault(require("./useDebounceState.js"));
|
|
14
14
|
exports.useDebounceState = useDebounceState_js_1.default;
|
|
15
|
-
const
|
|
16
|
-
exports.
|
|
15
|
+
const useCodexBalances_js_1 = tslib_1.__importDefault(require("./useCodexBalances.js"));
|
|
16
|
+
exports.useCodexBalances = useCodexBalances_js_1.default;
|
|
17
|
+
const useSolanaBalance_js_1 = tslib_1.__importDefault(require("./useSolanaBalance.js"));
|
|
18
|
+
exports.useSolanaBalance = useSolanaBalance_js_1.default;
|
|
17
19
|
const useMultiWalletBalances_js_1 = require("./useMultiWalletBalances.js");
|
|
18
20
|
Object.defineProperty(exports, "useMultiWalletBalances", { enumerable: true, get: function () { return useMultiWalletBalances_js_1.useMultiWalletBalances; } });
|
|
19
21
|
const useWalletAddress_js_1 = tslib_1.__importDefault(require("./useWalletAddress.js"));
|
|
@@ -62,4 +64,6 @@ const useLighterAccount_js_1 = tslib_1.__importDefault(require("./useLighterAcco
|
|
|
62
64
|
exports.useLighterAccount = useLighterAccount_js_1.default;
|
|
63
65
|
const useDisplayName_js_1 = tslib_1.__importDefault(require("./useDisplayName.js"));
|
|
64
66
|
exports.useDisplayName = useDisplayName_js_1.default;
|
|
67
|
+
const useKnownTokenContract_js_1 = tslib_1.__importDefault(require("./useKnownTokenContract.js"));
|
|
68
|
+
exports.useKnownTokenContract = useKnownTokenContract_js_1.default;
|
|
65
69
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/hooks/index.ts"],"names":[],"mappings":";;;;AAAA,4EAAwC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/hooks/index.ts"],"names":[],"mappings":";;;;AAAA,4EAAwC;AAkCtC,qBAlCK,uBAAU,CAkCL;AAjCZ,oFAAgD;AAkC9C,yBAlCK,2BAAc,CAkCL;AAjChB,4FAAwD;AAkCtD,6BAlCK,+BAAkB,CAkCL;AAjCpB,oFAAgD;AAkC9C,yBAlCK,2BAAc,CAkCL;AAjChB,wFAAoD;AAkClD,2BAlCK,6BAAgB,CAkCL;AAjClB,wFAAoD;AAkClD,2BAlCK,6BAAgB,CAkCL;AAjClB,wFAAoD;AAkClD,2BAlCK,6BAAgB,CAkCL;AAjClB,2EAAoE;AAkClE,uGAlCO,kDAAsB,OAkCP;AAjCxB,wFAAoD;AAkClD,2BAlCK,6BAAgB,CAkCL;AAjClB,sFAAkD;AAkChD,0BAlCK,4BAAe,CAkCL;AAjCjB,oGAAgE;AAkC9D,iCAlCK,mCAAsB,CAkCL;AAjCxB,0FAAsD;AAkCpD,4BAlCK,8BAAiB,CAkCL;AAjCnB,kGAA8D;AAkC5D,gCAlCK,kCAAqB,CAkCL;AAjCvB,gGAA4D;AAkC1D,+BAlCK,iCAAoB,CAkCL;AAjCtB,kGAA8D;AAkC5D,gCAlCK,kCAAqB,CAkCL;AAjCvB,gFAA4C;AAkC1C,uBAlCK,yBAAY,CAkCL;AAjCd,wFAAoD;AAkClD,2BAlCK,6BAAgB,CAkCL;AAjClB,sHAAkF;AAkChF,0CAlCK,4CAA+B,CAkCL;AAjCjC,kGAA8D;AAkC5D,gCAlCK,kCAAqB,CAkCL;AAjCvB,wEAAoC;AAkClC,mBAlCK,qBAAQ,CAkCL;AAjCV,wFAAoD;AAkClD,2BAlCK,6BAAgB,CAkCL;AAjClB,kGAA8D;AAkC5D,gCAlCK,kCAAqB,CAkCL;AAjCvB,2EAAoE;AAkClE,uGAlCO,kDAAsB,OAkCP;AAjCxB,8FAA0D;AAkCxD,8BAlCK,gCAAmB,CAkCL;AAjCrB,kGAA8D;AAkC5D,gCAlCK,kCAAqB,CAkCL;AAjCvB,0GAAsE;AAkCpE,oCAlCK,sCAAyB,CAkCL;AAjC3B,4FAAwD;AAkCtD,6BAlCK,+BAAkB,CAkCL;AAjCpB,8FAA0D;AAkCxD,8BAlCK,gCAAmB,CAkCL;AAjCrB,oFAAgD;AAkC9C,yBAlCK,2BAAc,CAkCL;AAjChB,0FAAsD;AAkCpD,4BAlCK,8BAAiB,CAkCL;AAjCnB,oFAAgD;AAkC9C,yBAlCK,2BAAc,CAkCL;AAjChB,kGAA8D;AAkC5D,gCAlCK,kCAAqB,CAkCL","sourcesContent":["import useMounted from './useMounted.js'\nimport useENSResolver from './useENSResolver.js'\nimport useCurrencyBalance from './useCurrencyBalance.js'\nimport useRelayClient from './useRelayClient.js'\nimport useDebounceState from './useDebounceState.js'\nimport useCodexBalances from './useCodexBalances.js'\nimport useSolanaBalance from './useSolanaBalance.js'\nimport { useMultiWalletBalances } from './useMultiWalletBalances.js'\nimport useWalletAddress from './useWalletAddress.js'\nimport useDisconnected from './useDisconnected.js'\nimport usePreviousValueChange from './usePreviousValueChange.js'\nimport useBitcoinBalance from './useBitcoinBalance.js'\nimport useAtomicBatchSupport from './useAtomicBatchSupport.js'\nimport useMoonPayCurrencies from './useMoonPayCurrencies.js'\nimport useMoonPayGeolocation from './useMoonPayGeolocation.js'\nimport useIpAddress from './useIpAddress.js'\nimport useIsPassthrough from './useIsPassthrough.js'\nimport useSupportedMoonPayCurrencyCode from './useSupportedMoonPayCurrencyCode.js'\nimport useIsWalletCompatible from './useIsWalletCompatible.js'\nimport useIsAGW from './useIsAGW.js'\nimport useFallbackState from './useFallbackState.js'\nimport useMoonPayTransaction from './useMoonPayTransaction.js'\nimport { useInternalRelayChains } from './useInternalRelayChains.js'\nimport useGasTopUpRequired from './useGasTopUpRequired.js'\nimport useHyperliquidBalance from './useHyperliquidBalance.js'\nimport useHyperliquidAccountMode from './useHyperliquidAccountMode.js'\nimport useExplicitDeposit from './useExplicitDeposit.js'\nimport useTransactionCount from './useTransactionCount.js'\nimport useTronBalance from './useTronBalance.js'\nimport useLighterAccount from './useLighterAccount.js'\nimport useDisplayName from './useDisplayName.js'\nimport useKnownTokenContract from './useKnownTokenContract.js'\n\nexport {\n useMounted,\n useENSResolver,\n useCurrencyBalance,\n useRelayClient,\n useDebounceState,\n useCodexBalances,\n useSolanaBalance,\n useMultiWalletBalances,\n useWalletAddress,\n useDisconnected,\n usePreviousValueChange,\n useBitcoinBalance,\n useAtomicBatchSupport,\n useMoonPayCurrencies,\n useMoonPayGeolocation,\n useIpAddress,\n useIsPassthrough,\n useSupportedMoonPayCurrencyCode,\n useIsWalletCompatible,\n useIsAGW,\n useFallbackState,\n useMoonPayTransaction,\n useInternalRelayChains,\n useGasTopUpRequired,\n useHyperliquidBalance,\n useHyperliquidAccountMode,\n useExplicitDeposit,\n useTransactionCount,\n useTronBalance,\n useLighterAccount,\n useDisplayName,\n useKnownTokenContract\n}\n"]}
|