@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":"ChainTokenIcon.js","sourceRoot":"","sources":["../../../../src/components/primitives/ChainTokenIcon.tsx"],"names":[],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"ChainTokenIcon.js","sourceRoot":"","sources":["../../../../src/components/primitives/ChainTokenIcon.tsx"],"names":[],"mappings":";;;;;AAAA,iCAAyC;AACzC,0EAAsC;AACtC,gEAA4B;AAC5B,6CAAsC;AActC,MAAM,KAAK,GAAG;IACZ,EAAE,EAAE;QACF,KAAK,EAAE,EAAE;QACT,KAAK,EAAE,EAAE;KACV;IACD,IAAI,EAAE;QACJ,KAAK,EAAE,EAAE;QACT,KAAK,EAAE,EAAE;KACV;IACD,EAAE,EAAE;QACF,KAAK,EAAE,EAAE;QACT,KAAK,EAAE,EAAE;KACV;IACD,EAAE,EAAE;QACF,KAAK,EAAE,EAAE;QACT,KAAK,EAAE,EAAE;KACV;CACO,CAAA;AAEH,MAAM,cAAc,GAAwB,CAAC,EAClD,OAAO,EACP,YAAY,EACZ,WAAW,EACX,SAAS,EACT,IAAI,GAAG,IAAI,EACX,WAAW,GAAG,CAAC,EACf,aAAa,EACd,EAAE,EAAE;IACH,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,IAAA,gBAAQ,EAAgB,IAAI,CAAC,CAAA;IACjE,MAAM,gBAAgB,GACpB,YAAY;QACZ,YAAY,KAAK,aAAa;QAC9B,UAAU,KAAK,YAAY,CAAA;IAC7B,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,CAAA;IAC9B,MAAM,SAAS,GAAG,aAAa,IAAI,UAAU,CAAC,KAAK,CAAA;IAEnD,OAAO,OAAO,CAAC,CAAC,CAAC,CACf,iCACE,SAAS,EAAE,IAAA,UAAE,EACX,qDAAqD,EACrD,SAAS,CACV,EACD,KAAK,EAAE;YACL,KAAK,EAAE,UAAU,CAAC,KAAK;YACvB,MAAM,EAAE,UAAU,CAAC,KAAK;YACxB,YAAY,EAAE,WAAW;SAC1B,aAEA,gBAAgB,CAAC,CAAC,CAAC,CAClB,gCACE,GAAG,EAAE,OAAO,EACZ,GAAG,EAAE,YAAY,EACjB,KAAK,EAAE,UAAU,CAAC,KAAK,EACvB,MAAM,EAAE,UAAU,CAAC,KAAK,EACxB,OAAO,EAAE,GAAG,EAAE,CAAC,aAAa,CAAC,YAAY,IAAI,IAAI,CAAC,EAClD,KAAK,EAAE;oBACL,YAAY,EAAE,IAAI;oBAClB,QAAQ,EAAE,QAAQ;iBACnB,GACD,CACH,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAChB,gCACE,SAAS,EAAC,gKAAgK,EAC1K,KAAK,EAAE;oBACL,KAAK,EAAE,UAAU,CAAC,KAAK;oBACvB,MAAM,EAAE,UAAU,CAAC,KAAK;iBACzB,YAED,uBAAC,iBAAI,IAAC,KAAK,EAAC,IAAI,YAAE,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAQ,GAC1D,CACP,CAAC,CAAC,CAAC,IAAI,EACR,uBAAC,sBAAS,IACR,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,SAAS,EAChB,MAAM,EAAE,SAAS,EACjB,YAAY,EAAE,WAAW,EACzB,SAAS,EAAC,uMAAuM,GACjN,IACE,CACP,CAAC,CAAC,CAAC,IAAI,CAAA;AACV,CAAC,CAAA;AA7DY,QAAA,cAAc,kBA6D1B","sourcesContent":["import { type FC, useState } from 'react'\nimport ChainIcon from './ChainIcon.js'\nimport Text from './Text.js'\nimport { cn } from '../../utils/cn.js'\n\ntype Size = 'sm' | 'base' | 'md' | 'lg'\n\ntype ChainTokenProps = {\n chainId?: number\n tokenlogoURI?: string\n tokenSymbol?: string\n className?: string\n size?: Size\n chainRadius?: number\n chainIconSize?: number\n}\n\nconst SIZES = {\n sm: {\n token: 20,\n chain: 12\n },\n base: {\n token: 24,\n chain: 10\n },\n md: {\n token: 32,\n chain: 16\n },\n lg: {\n token: 40,\n chain: 18\n }\n} as const\n\nexport const ChainTokenIcon: FC<ChainTokenProps> = ({\n chainId,\n tokenlogoURI,\n tokenSymbol,\n className,\n size = 'md',\n chainRadius = 4,\n chainIconSize\n}) => {\n const [erroredSrc, setErroredSrc] = useState<string | null>(null)\n const isValidTokenLogo =\n tokenlogoURI &&\n tokenlogoURI !== 'missing.png' &&\n erroredSrc !== tokenlogoURI\n const dimensions = SIZES[size]\n const chainSize = chainIconSize ?? dimensions.chain\n\n return chainId ? (\n <div\n className={cn(\n 'relay:relative relay:shrink-0 relay:overflow-hidden',\n className\n )}\n style={{\n width: dimensions.token,\n height: dimensions.token,\n borderRadius: chainRadius\n }}\n >\n {isValidTokenLogo ? (\n <img\n alt={'Token'}\n src={tokenlogoURI}\n width={dimensions.token}\n height={dimensions.token}\n onError={() => setErroredSrc(tokenlogoURI ?? null)}\n style={{\n borderRadius: 9999,\n overflow: 'hidden'\n }}\n />\n ) : tokenSymbol ? (\n <div\n className=\"relay:rounded-[50%] relay:bg-[var(--relay-colors-primary4)] relay:text-[color:var(--relay-colors-primary8)] relay:flex relay:items-center relay:justify-center\"\n style={{\n width: dimensions.token,\n height: dimensions.token\n }}\n >\n <Text style=\"h6\">{tokenSymbol?.charAt(0).toUpperCase()}</Text>\n </div>\n ) : null}\n <ChainIcon\n chainId={chainId}\n width={chainSize}\n height={chainSize}\n borderRadius={chainRadius}\n className=\"relay:absolute relay:right-0 relay:bottom-0 relay:overflow-hidden relay:border relay:border-solid relay:border-[var(--relay-colors-modal-background)] relay:bg-[var(--relay-colors-modal-background)]\"\n />\n </div>\n ) : null\n}\n"]}
|
|
@@ -225,7 +225,7 @@ const OnrampWidget = ({ defaultWalletAddress, moonPayApiKey, moonpayOnUrlSignatu
|
|
|
225
225
|
else {
|
|
226
226
|
setOnrampModalOpen(true);
|
|
227
227
|
}
|
|
228
|
-
}, children: ctaCopy }), (0, jsx_runtime_1.jsx)(CustomAddressModal_js_1.CustomAddressModal, { open: addressModalOpen, toAddress: recipient, toChain: toChain, isConnected: (linkedWallets && linkedWallets.length > 0) || isConnected
|
|
228
|
+
}, children: ctaCopy }), (0, jsx_runtime_1.jsx)(CustomAddressModal_js_1.CustomAddressModal, { open: addressModalOpen, toToken: token, toAddress: recipient, toChain: toChain, isConnected: (linkedWallets && linkedWallets.length > 0) || isConnected
|
|
229
229
|
? true
|
|
230
230
|
: false, linkedWallets: linkedWallets ?? [], multiWalletSupportEnabled: multiWalletSupportEnabled, onAnalyticEvent: onAnalyticEvent, onOpenChange: (open) => {
|
|
231
231
|
setAddressModalOpen(open);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../src/components/widgets/OnrampWidget/widget/index.tsx"],"names":[],"mappings":"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","sourcesContent":["import type { FC } from 'react'\nimport OnrampWidgetRenderer from './OnrampWidgetRenderer.js'\nimport { Box, Button, Flex, Text } from '../../../primitives/index.js'\nimport AmountInput from '../../../common/AmountInput.js'\nimport { useCallback, useContext, useEffect, useState } from 'react'\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport { faArrowDownLong } from '@fortawesome/free-solid-svg-icons/faArrowDownLong'\nimport { faArrowUpLong } from '@fortawesome/free-solid-svg-icons/faArrowUpLong'\nimport { faClipboard } from '@fortawesome/free-solid-svg-icons/faClipboard'\nimport { faCreditCard } from '@fortawesome/free-solid-svg-icons/faCreditCard'\nimport TokenSelector from '../../../common/TokenSelector/TokenSelector.js'\nimport { EventNames } from '../../../../constants/events.js'\nimport { TokenTrigger } from '../../../common/TokenSelector/triggers/TokenTrigger.js'\nimport type { LinkedWallet, Token } from '../../../../types/index.js'\nimport type { ChainVM, Execute, RelayChain } from '@relayprotocol/relay-sdk'\nimport { MultiWalletDropdown } from '../../../common/MultiWalletDropdown.js'\nimport { CustomAddressModal } from '../../../common/CustomAddressModal.js'\nimport { useAccount } from 'wagmi'\nimport { OnrampModal } from '../modals/OnrampModal.js'\nimport { formatBN } from '../../../../utils/numbers.js'\nimport { findSupportedWallet } from '../../../../utils/address.js'\nimport {\n ProviderOptionsContext,\n useHapticEvent\n} from '../../../../providers/RelayKitProvider.js'\n\ntype BaseOnrampWidgetProps = {\n defaultWalletAddress?: string\n supportedWalletVMs: Omit<ChainVM, 'hypevm' | 'lvm'>[]\n moonPayApiKey: string\n moonPayThemeId?: string\n moonPayThemeMode?: 'dark' | 'light'\n token?: Token\n setToken?: (token: Token) => void\n disablePasteWalletAddressOption?: boolean\n onTokenChange?: (token?: Token) => void\n onSuccess?: (data: Execute, moonpayRequestId: string) => void\n onError?: (error: string, data?: Execute, moonpayRequestId?: string) => void\n moonpayOnUrlSignatureRequested: (url: string) => Promise<string> | void\n onConnectWallet?: () => void\n onAnalyticEvent?: (eventName: string, data?: any) => void\n}\n\ntype MultiWalletDisabledProps = BaseOnrampWidgetProps & {\n multiWalletSupportEnabled?: false\n linkedWallets?: never\n onSetPrimaryWallet?: never\n onLinkNewWallet?: never\n}\n\ntype MultiWalletEnabledProps = BaseOnrampWidgetProps & {\n multiWalletSupportEnabled: true\n linkedWallets: LinkedWallet[]\n onSetPrimaryWallet?: (address: string) => void\n onLinkNewWallet: (params: {\n chain?: RelayChain\n direction: 'to' | 'from'\n }) => Promise<LinkedWallet> | void\n}\n\nexport type OnrampWidgetProps =\n | MultiWalletDisabledProps\n | MultiWalletEnabledProps\n\nconst OnrampWidget: FC<OnrampWidgetProps> = ({\n defaultWalletAddress,\n moonPayApiKey,\n moonpayOnUrlSignatureRequested,\n linkedWallets,\n multiWalletSupportEnabled,\n supportedWalletVMs,\n moonPayThemeId,\n moonPayThemeMode,\n token,\n setToken,\n disablePasteWalletAddressOption,\n onTokenChange,\n onConnectWallet,\n onLinkNewWallet,\n onSetPrimaryWallet,\n onAnalyticEvent: _onAnalyticEvent,\n onSuccess\n}) => {\n const onAnalyticEvent = useCallback(\n (eventName: string, data?: any) => {\n try {\n _onAnalyticEvent?.(eventName, data)\n } catch (e) {\n console.error('Error in onAnalyticEvent', eventName, data, e)\n }\n },\n [_onAnalyticEvent]\n )\n const [addressModalOpen, setAddressModalOpen] = useState(false)\n const [onrampModalOpen, setOnrampModalOpen] = useState(false)\n const { isConnected } = useAccount()\n const providerOptionsContext = useContext(ProviderOptionsContext)\n const haptic = useHapticEvent()\n const connectorKeyOverrides = providerOptionsContext.vmConnectorKeyOverrides\n\n return (\n <OnrampWidgetRenderer\n defaultWalletAddress={defaultWalletAddress}\n supportedWalletVMs={supportedWalletVMs}\n linkedWallets={linkedWallets}\n multiWalletSupportEnabled={multiWalletSupportEnabled}\n moonPayApiKey={moonPayApiKey}\n token={token}\n setToken={setToken}\n >\n {({\n displayCurrency,\n setDisplayCurrency,\n recipient,\n setRecipient,\n isRecipientLinked,\n isValidRecipient,\n amount,\n amountToToken,\n setInputValue,\n amountToTokenFormatted,\n token,\n fromToken,\n setToken,\n toChain,\n fromChain,\n toDisplayName,\n toChainWalletVMSupported,\n fiatCurrency,\n setFiatCurrency,\n minAmountCurrency,\n notEnoughFiat,\n ctaCopy,\n moonPayCurrencyCode,\n isPassthrough,\n usdRate\n }) => {\n //Reset recipient if no longer valid\n useEffect(() => {\n if (\n multiWalletSupportEnabled &&\n fromChain &&\n recipient &&\n linkedWallets &&\n !isValidRecipient\n ) {\n const supportedAddress = findSupportedWallet(\n fromChain,\n recipient,\n linkedWallets,\n connectorKeyOverrides\n )\n if (supportedAddress) {\n onSetPrimaryWallet?.(supportedAddress)\n }\n }\n\n if (\n multiWalletSupportEnabled &&\n toChain &&\n recipient &&\n linkedWallets &&\n !isValidRecipient\n ) {\n setRecipient(undefined)\n }\n }, [\n multiWalletSupportEnabled,\n fromChain?.id,\n toChain?.id,\n linkedWallets,\n onSetPrimaryWallet,\n isValidRecipient,\n connectorKeyOverrides\n ])\n\n const formattedAmount =\n amount === ''\n ? ''\n : amount.endsWith('.')\n ? new Intl.NumberFormat(undefined, {\n style: 'currency',\n currency: 'USD',\n currencyDisplay: 'narrowSymbol',\n minimumFractionDigits: 0,\n maximumFractionDigits: 0\n }).format(+amount) + '.'\n : new Intl.NumberFormat(undefined, {\n style: 'currency',\n currency: 'USD',\n currencyDisplay: 'narrowSymbol',\n minimumFractionDigits: amount.includes('.0')\n ? 1\n : amount.endsWith('0') && amount.includes('.')\n ? 2\n : 0,\n maximumFractionDigits: amount.includes('.') ? 2 : 0,\n minimumSignificantDigits: 1,\n maximumSignificantDigits: amount.length\n }).format(+amount)\n\n return (\n <div\n className=\"relay-kit-reset relay:max-w-[408px] relay:min-w-[320px] relay:w-full\"\n >\n <Flex\n direction=\"column\"\n className=\"relay:gap-2 relay:w-full relay:border-widget\"\n >\n <Flex\n direction=\"column\"\n className=\"relay:w-full relay:overflow-hidden relay:px-4 relay:pt-[40px] relay:pb-[24px] relay:rounded-widget-card relay:bg-[var(--relay-colors-widget-background)] relay:border-widget-card relay:mb-[var(--relay-spacing-widget-card-section-gutter)]\"\n >\n <Text\n style=\"subtitle2\"\n color=\"subtle\"\n className=\"relay:text-center\"\n >\n Enter an amount\n </Text>\n <AmountInput\n value={\n displayCurrency\n ? amountToToken !== ''\n ? `${amountToToken} ${token.symbol}`\n : ''\n : formattedAmount\n }\n setValue={(e) => {\n //unused\n }}\n placeholder={` 0`}\n onChange={(e) => {\n const input = e.target as any\n\n setInputValue(input.value)\n if (displayCurrency) {\n setTimeout(() => {\n const numericValue = input.value.match(/[\\d.]+/g)\n const numericValueLength =\n numericValue !== null\n ? numericValue.join('').length\n : 0\n input.setSelectionRange(\n numericValueLength,\n numericValueLength\n )\n }, 0)\n }\n }}\n onKeyDown={(e) => {\n const input = e.target as HTMLInputElement\n const cursorPosition = input.selectionStart\n\n // Prevent multiple decimals\n if (\n e.key === '.' &&\n (input.value.match(/\\./g) || []).length > 0\n ) {\n e.preventDefault() // Prevent the key press if there's already a decimal\n return\n }\n\n if (e.key === 'ArrowLeft' && cursorPosition !== null) {\n const valueBeforeCursor = input.value.substring(\n 0,\n cursorPosition\n )\n const charBeforeCursor = valueBeforeCursor.charAt(\n cursorPosition - 1\n )\n if (charBeforeCursor === '$') {\n e.preventDefault()\n }\n }\n if (e.key === 'ArrowRight' && cursorPosition !== null) {\n const valueAfterCursor = input.value.substring(\n 0,\n cursorPosition + 1\n )\n const charAfterCursor =\n valueAfterCursor.charAt(cursorPosition)\n if (charAfterCursor === ' ') {\n e.preventDefault()\n }\n }\n }}\n onMouseDown={(e) => {\n const input = e.target as HTMLInputElement\n input.style.caretColor = 'transparent'\n }}\n onMouseUp={(e) => {\n const input = e.target as HTMLInputElement\n const cursorPosition = input.selectionStart // Get the current cursor position\n if (cursorPosition !== null) {\n const valueAfterCursor = input.value.substring(\n 0,\n cursorPosition + 1\n )\n const charAfterCursor =\n valueAfterCursor.charAt(cursorPosition)\n const valueBeforeCursor = input.value.substring(\n 0,\n cursorPosition\n )\n const charBeforeCursor = valueBeforeCursor.charAt(\n cursorPosition - 1\n )\n const specialCharacterRegex = /[ a-zA-Z]/\n const alphaRegex = /[a-zA-Z]/\n if (\n charAfterCursor === '$' ||\n alphaRegex.test(charAfterCursor) ||\n specialCharacterRegex.test(charBeforeCursor)\n ) {\n e.preventDefault()\n e.stopPropagation()\n input.setSelectionRange(1, 1)\n }\n }\n input.style.caretColor = 'initial'\n }}\n className=\"relay:text-center relay:whitespace-pre\"\n inputStyle={{\n fontWeight: '700',\n fontSize: 48,\n lineHeight: '58px',\n textAlign: 'center',\n textIndent:\n amount === '' || amountToToken === ''\n ? '-36px'\n : undefined,\n whiteSpace: 'pre'\n }}\n containerClassName=\"relay:mb-2 relay:w-full\"\n />\n {notEnoughFiat ? (\n <Text color=\"red\" className=\"relay:mb-[24px] relay:text-center\">\n Minimum amount is{' '}\n {displayCurrency && minAmountCurrency\n ? `${minAmountCurrency} ${token.symbol}`\n : '$20'}\n </Text>\n ) : undefined}\n <button\n className=\"relay:gap-2 relay:cursor-pointer relay:flex relay:items-center relay:justify-center relay:mb-[16px] relay:self-center\"\n onClick={() => {\n const _displayCurrency = !displayCurrency\n setDisplayCurrency(_displayCurrency)\n if (_displayCurrency) {\n let _amountToToken = 21 / usdRate\n if (+amountToToken > _amountToToken) {\n _amountToToken = +amountToToken\n }\n setInputValue(\n formatBN(_amountToToken, 5, token.decimals, false),\n _displayCurrency\n )\n }\n }}\n >\n <Text style=\"body2\" color=\"subtle\">\n {displayCurrency\n ? formattedAmount\n : `${amountToTokenFormatted} ${token.symbol}`}\n </Text>\n <Flex\n className=\"relay:text-[color:var(--relay-colors-gray8)]\"\n >\n <FontAwesomeIcon\n className=\"relay:h-[14px]\"\n icon={faArrowUpLong}\n />\n <FontAwesomeIcon\n className=\"relay:h-[14px]\"\n icon={faArrowDownLong}\n />\n </Flex>\n </button>\n <TokenSelector\n address={recipient}\n isValidAddress={isValidRecipient}\n token={token}\n onAnalyticEvent={onAnalyticEvent}\n fromChainWalletVMSupported={false}\n supportedWalletVMs={[]}\n setToken={(token) => {\n setToken(token)\n onTokenChange?.(token)\n }}\n context=\"to\"\n trigger={\n <div\n className=\"relay:w-max relay:mx-auto relay:mb-[16px]\"\n data-testid=\"onramp-token-select-button\"\n >\n <TokenTrigger token={token} />\n </div>\n }\n />\n <Flex className=\"relay:gap-2 relay:mx-auto\">\n <Button\n color=\"white\"\n corners=\"pill\"\n size=\"none\"\n className=\"relay:h-[30px] relay:px-[14px] relay:py-[4px] relay:text-[14px]\"\n onClick={() => {\n setDisplayCurrency(false)\n setInputValue('100', false)\n }}\n >\n <Text style=\"subtitle2\">$100</Text>\n </Button>\n <Button\n color=\"white\"\n corners=\"pill\"\n size=\"none\"\n className=\"relay:h-[30px] relay:px-[14px] relay:py-[4px] relay:text-[14px]\"\n onClick={() => {\n setDisplayCurrency(false)\n setInputValue('300', false)\n }}\n >\n <Text style=\"subtitle2\">$300</Text>\n </Button>\n <Button\n color=\"white\"\n corners=\"pill\"\n size=\"none\"\n className=\"relay:h-[30px] relay:px-[14px] relay:py-[4px] relay:text-[14px]\"\n onClick={() => {\n setDisplayCurrency(false)\n setInputValue('1000', false)\n }}\n >\n <Text style=\"subtitle2\">$1,000</Text>\n </Button>\n </Flex>\n </Flex>\n </Flex>\n <Flex\n direction=\"column\"\n className=\"relay:w-full relay:overflow-hidden relay:p-4 relay:rounded-widget-card relay:bg-[var(--relay-colors-widget-background)] relay:border-widget-card relay:mb-[var(--relay-spacing-widget-card-section-gutter)]\"\n >\n <Flex justify=\"between\" align=\"center\" className=\"relay:mb-2\">\n <Text color=\"subtle\" style=\"subtitle2\">\n Recipient\n </Text>\n {multiWalletSupportEnabled === true &&\n toChainWalletVMSupported ? (\n <MultiWalletDropdown\n context=\"destination\"\n selectedWalletAddress={recipient}\n onSelect={(wallet) => setRecipient(wallet.address)}\n chain={toChain}\n onLinkNewWallet={() => {\n if (\n (!linkedWallets || linkedWallets.length === 0) &&\n toChainWalletVMSupported\n ) {\n onConnectWallet?.()\n } else {\n onLinkNewWallet?.({\n chain: toChain,\n direction: 'to'\n })?.then((wallet) => {\n onSetPrimaryWallet?.(wallet.address)\n })\n }\n }}\n setAddressModalOpen={setAddressModalOpen}\n wallets={linkedWallets!}\n onAnalyticEvent={onAnalyticEvent}\n disablePasteWalletAddressOption={\n disablePasteWalletAddressOption\n }\n testId=\"onramp-wallet-select-button\"\n />\n ) : null}\n {!multiWalletSupportEnabled || !toChainWalletVMSupported ? (\n <Button\n color={\n isValidRecipient && !isRecipientLinked\n ? 'warning'\n : 'secondary'\n }\n corners=\"pill\"\n size=\"none\"\n className=\"relay:flex relay:items-center relay:px-2 relay:py-1\"\n onClick={() => {\n setAddressModalOpen(true)\n onAnalyticEvent?.(EventNames.SWAP_ADDRESS_MODAL_CLICKED)\n }}\n >\n {isValidRecipient && !isRecipientLinked ? (\n <Box className=\"relay:text-[color:var(--relay-colors-amber11)]\">\n <FontAwesomeIcon\n icon={faClipboard}\n width={16}\n height={16}\n />\n </Box>\n ) : null}\n <Text\n style=\"subtitle2\"\n className={\n isValidRecipient && !isRecipientLinked\n ? 'relay:text-[color:var(--relay-colors-amber11)]'\n : 'relay:text-[color:var(--relay-colors-anchor-color)]'\n }\n >\n {!isValidRecipient ? `Enter Address` : toDisplayName}\n </Text>\n </Button>\n ) : null}\n </Flex>\n <Flex justify=\"between\" align=\"center\">\n <Text color=\"subtle\" style=\"subtitle2\">\n Paying with\n </Text>\n <Flex\n className=\"relay:items-center relay:gap-2 relay:ml-auto relay:mr-2 relay:text-[color:var(--relay-colors-gray9)]\"\n >\n <FontAwesomeIcon style={{ width: 16 }} icon={faCreditCard} />\n <Text style=\"subtitle2\">Card</Text>\n </Flex>\n {/* Hiding this until issues are resolved with MoonPay\n <FiatCurrencyModal\n fiatCurrency={fiatCurrency}\n setFiatCurrency={setFiatCurrency}\n moonPayApiKey={moonPayApiKey}\n /> */}\n </Flex>\n </Flex>\n <Button\n cta={true}\n className=\"relay:w-full relay:justify-center\"\n disabled={notEnoughFiat}\n onClick={() => {\n haptic('medium')\n if (!recipient && toChainWalletVMSupported) {\n if (!linkedWallets || linkedWallets.length === 0) {\n onConnectWallet?.()\n } else {\n onLinkNewWallet?.({\n chain: toChain,\n direction: 'to'\n })?.then((wallet) => {\n onSetPrimaryWallet?.(wallet.address)\n })\n }\n } else if (!recipient) {\n setAddressModalOpen(true)\n } else {\n setOnrampModalOpen(true)\n }\n }}\n >\n {ctaCopy}\n </Button>\n <CustomAddressModal\n open={addressModalOpen}\n toAddress={recipient}\n toChain={toChain}\n isConnected={\n (linkedWallets && linkedWallets.length > 0) || isConnected\n ? true\n : false\n }\n linkedWallets={linkedWallets ?? []}\n multiWalletSupportEnabled={multiWalletSupportEnabled}\n onAnalyticEvent={onAnalyticEvent}\n onOpenChange={(open) => {\n setAddressModalOpen(open)\n }}\n onConfirmed={(address) => {\n setRecipient(address)\n }}\n onClear={() => {\n setRecipient(undefined)\n }}\n />\n <OnrampModal\n open={onrampModalOpen}\n onOpenChange={setOnrampModalOpen}\n onAnalyticEvent={onAnalyticEvent}\n moonpayOnUrlSignatureRequested={moonpayOnUrlSignatureRequested}\n fromToken={fromToken}\n toToken={token}\n fromChain={fromChain}\n toChain={toChain}\n amount={amount}\n amountFormatted={formattedAmount}\n amountToTokenFormatted={amountToTokenFormatted}\n fiatCurrency={fiatCurrency}\n recipient={recipient}\n onSuccess={onSuccess}\n moonPayCurrencyCode={moonPayCurrencyCode}\n isPassthrough={isPassthrough}\n usdRate={usdRate}\n moonPayThemeId={moonPayThemeId}\n moonPayThemeMode={moonPayThemeMode}\n moonPayApiKey={moonPayApiKey}\n />\n </div>\n )\n }}\n </OnrampWidgetRenderer>\n )\n}\n\nexport default OnrampWidget\n"]}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../src/components/widgets/OnrampWidget/widget/index.tsx"],"names":[],"mappings":"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","sourcesContent":["import type { FC } from 'react'\nimport OnrampWidgetRenderer from './OnrampWidgetRenderer.js'\nimport { Box, Button, Flex, Text } from '../../../primitives/index.js'\nimport AmountInput from '../../../common/AmountInput.js'\nimport { useCallback, useContext, useEffect, useState } from 'react'\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport { faArrowDownLong } from '@fortawesome/free-solid-svg-icons/faArrowDownLong'\nimport { faArrowUpLong } from '@fortawesome/free-solid-svg-icons/faArrowUpLong'\nimport { faClipboard } from '@fortawesome/free-solid-svg-icons/faClipboard'\nimport { faCreditCard } from '@fortawesome/free-solid-svg-icons/faCreditCard'\nimport TokenSelector from '../../../common/TokenSelector/TokenSelector.js'\nimport { EventNames } from '../../../../constants/events.js'\nimport { TokenTrigger } from '../../../common/TokenSelector/triggers/TokenTrigger.js'\nimport type { LinkedWallet, Token } from '../../../../types/index.js'\nimport type { ChainVM, Execute, RelayChain } from '@relayprotocol/relay-sdk'\nimport { MultiWalletDropdown } from '../../../common/MultiWalletDropdown.js'\nimport { CustomAddressModal } from '../../../common/CustomAddressModal.js'\nimport { useAccount } from 'wagmi'\nimport { OnrampModal } from '../modals/OnrampModal.js'\nimport { formatBN } from '../../../../utils/numbers.js'\nimport { findSupportedWallet } from '../../../../utils/address.js'\nimport {\n ProviderOptionsContext,\n useHapticEvent\n} from '../../../../providers/RelayKitProvider.js'\n\ntype BaseOnrampWidgetProps = {\n defaultWalletAddress?: string\n supportedWalletVMs: Omit<ChainVM, 'hypevm' | 'lvm'>[]\n moonPayApiKey: string\n moonPayThemeId?: string\n moonPayThemeMode?: 'dark' | 'light'\n token?: Token\n setToken?: (token: Token) => void\n disablePasteWalletAddressOption?: boolean\n onTokenChange?: (token?: Token) => void\n onSuccess?: (data: Execute, moonpayRequestId: string) => void\n onError?: (error: string, data?: Execute, moonpayRequestId?: string) => void\n moonpayOnUrlSignatureRequested: (url: string) => Promise<string> | void\n onConnectWallet?: () => void\n onAnalyticEvent?: (eventName: string, data?: any) => void\n}\n\ntype MultiWalletDisabledProps = BaseOnrampWidgetProps & {\n multiWalletSupportEnabled?: false\n linkedWallets?: never\n onSetPrimaryWallet?: never\n onLinkNewWallet?: never\n}\n\ntype MultiWalletEnabledProps = BaseOnrampWidgetProps & {\n multiWalletSupportEnabled: true\n linkedWallets: LinkedWallet[]\n onSetPrimaryWallet?: (address: string) => void\n onLinkNewWallet: (params: {\n chain?: RelayChain\n direction: 'to' | 'from'\n }) => Promise<LinkedWallet> | void\n}\n\nexport type OnrampWidgetProps =\n | MultiWalletDisabledProps\n | MultiWalletEnabledProps\n\nconst OnrampWidget: FC<OnrampWidgetProps> = ({\n defaultWalletAddress,\n moonPayApiKey,\n moonpayOnUrlSignatureRequested,\n linkedWallets,\n multiWalletSupportEnabled,\n supportedWalletVMs,\n moonPayThemeId,\n moonPayThemeMode,\n token,\n setToken,\n disablePasteWalletAddressOption,\n onTokenChange,\n onConnectWallet,\n onLinkNewWallet,\n onSetPrimaryWallet,\n onAnalyticEvent: _onAnalyticEvent,\n onSuccess\n}) => {\n const onAnalyticEvent = useCallback(\n (eventName: string, data?: any) => {\n try {\n _onAnalyticEvent?.(eventName, data)\n } catch (e) {\n console.error('Error in onAnalyticEvent', eventName, data, e)\n }\n },\n [_onAnalyticEvent]\n )\n const [addressModalOpen, setAddressModalOpen] = useState(false)\n const [onrampModalOpen, setOnrampModalOpen] = useState(false)\n const { isConnected } = useAccount()\n const providerOptionsContext = useContext(ProviderOptionsContext)\n const haptic = useHapticEvent()\n const connectorKeyOverrides = providerOptionsContext.vmConnectorKeyOverrides\n\n return (\n <OnrampWidgetRenderer\n defaultWalletAddress={defaultWalletAddress}\n supportedWalletVMs={supportedWalletVMs}\n linkedWallets={linkedWallets}\n multiWalletSupportEnabled={multiWalletSupportEnabled}\n moonPayApiKey={moonPayApiKey}\n token={token}\n setToken={setToken}\n >\n {({\n displayCurrency,\n setDisplayCurrency,\n recipient,\n setRecipient,\n isRecipientLinked,\n isValidRecipient,\n amount,\n amountToToken,\n setInputValue,\n amountToTokenFormatted,\n token,\n fromToken,\n setToken,\n toChain,\n fromChain,\n toDisplayName,\n toChainWalletVMSupported,\n fiatCurrency,\n setFiatCurrency,\n minAmountCurrency,\n notEnoughFiat,\n ctaCopy,\n moonPayCurrencyCode,\n isPassthrough,\n usdRate\n }) => {\n //Reset recipient if no longer valid\n useEffect(() => {\n if (\n multiWalletSupportEnabled &&\n fromChain &&\n recipient &&\n linkedWallets &&\n !isValidRecipient\n ) {\n const supportedAddress = findSupportedWallet(\n fromChain,\n recipient,\n linkedWallets,\n connectorKeyOverrides\n )\n if (supportedAddress) {\n onSetPrimaryWallet?.(supportedAddress)\n }\n }\n\n if (\n multiWalletSupportEnabled &&\n toChain &&\n recipient &&\n linkedWallets &&\n !isValidRecipient\n ) {\n setRecipient(undefined)\n }\n }, [\n multiWalletSupportEnabled,\n fromChain?.id,\n toChain?.id,\n linkedWallets,\n onSetPrimaryWallet,\n isValidRecipient,\n connectorKeyOverrides\n ])\n\n const formattedAmount =\n amount === ''\n ? ''\n : amount.endsWith('.')\n ? new Intl.NumberFormat(undefined, {\n style: 'currency',\n currency: 'USD',\n currencyDisplay: 'narrowSymbol',\n minimumFractionDigits: 0,\n maximumFractionDigits: 0\n }).format(+amount) + '.'\n : new Intl.NumberFormat(undefined, {\n style: 'currency',\n currency: 'USD',\n currencyDisplay: 'narrowSymbol',\n minimumFractionDigits: amount.includes('.0')\n ? 1\n : amount.endsWith('0') && amount.includes('.')\n ? 2\n : 0,\n maximumFractionDigits: amount.includes('.') ? 2 : 0,\n minimumSignificantDigits: 1,\n maximumSignificantDigits: amount.length\n }).format(+amount)\n\n return (\n <div\n className=\"relay-kit-reset relay:max-w-[408px] relay:min-w-[320px] relay:w-full\"\n >\n <Flex\n direction=\"column\"\n className=\"relay:gap-2 relay:w-full relay:border-widget\"\n >\n <Flex\n direction=\"column\"\n className=\"relay:w-full relay:overflow-hidden relay:px-4 relay:pt-[40px] relay:pb-[24px] relay:rounded-widget-card relay:bg-[var(--relay-colors-widget-background)] relay:border-widget-card relay:mb-[var(--relay-spacing-widget-card-section-gutter)]\"\n >\n <Text\n style=\"subtitle2\"\n color=\"subtle\"\n className=\"relay:text-center\"\n >\n Enter an amount\n </Text>\n <AmountInput\n value={\n displayCurrency\n ? amountToToken !== ''\n ? `${amountToToken} ${token.symbol}`\n : ''\n : formattedAmount\n }\n setValue={(e) => {\n //unused\n }}\n placeholder={` 0`}\n onChange={(e) => {\n const input = e.target as any\n\n setInputValue(input.value)\n if (displayCurrency) {\n setTimeout(() => {\n const numericValue = input.value.match(/[\\d.]+/g)\n const numericValueLength =\n numericValue !== null\n ? numericValue.join('').length\n : 0\n input.setSelectionRange(\n numericValueLength,\n numericValueLength\n )\n }, 0)\n }\n }}\n onKeyDown={(e) => {\n const input = e.target as HTMLInputElement\n const cursorPosition = input.selectionStart\n\n // Prevent multiple decimals\n if (\n e.key === '.' &&\n (input.value.match(/\\./g) || []).length > 0\n ) {\n e.preventDefault() // Prevent the key press if there's already a decimal\n return\n }\n\n if (e.key === 'ArrowLeft' && cursorPosition !== null) {\n const valueBeforeCursor = input.value.substring(\n 0,\n cursorPosition\n )\n const charBeforeCursor = valueBeforeCursor.charAt(\n cursorPosition - 1\n )\n if (charBeforeCursor === '$') {\n e.preventDefault()\n }\n }\n if (e.key === 'ArrowRight' && cursorPosition !== null) {\n const valueAfterCursor = input.value.substring(\n 0,\n cursorPosition + 1\n )\n const charAfterCursor =\n valueAfterCursor.charAt(cursorPosition)\n if (charAfterCursor === ' ') {\n e.preventDefault()\n }\n }\n }}\n onMouseDown={(e) => {\n const input = e.target as HTMLInputElement\n input.style.caretColor = 'transparent'\n }}\n onMouseUp={(e) => {\n const input = e.target as HTMLInputElement\n const cursorPosition = input.selectionStart // Get the current cursor position\n if (cursorPosition !== null) {\n const valueAfterCursor = input.value.substring(\n 0,\n cursorPosition + 1\n )\n const charAfterCursor =\n valueAfterCursor.charAt(cursorPosition)\n const valueBeforeCursor = input.value.substring(\n 0,\n cursorPosition\n )\n const charBeforeCursor = valueBeforeCursor.charAt(\n cursorPosition - 1\n )\n const specialCharacterRegex = /[ a-zA-Z]/\n const alphaRegex = /[a-zA-Z]/\n if (\n charAfterCursor === '$' ||\n alphaRegex.test(charAfterCursor) ||\n specialCharacterRegex.test(charBeforeCursor)\n ) {\n e.preventDefault()\n e.stopPropagation()\n input.setSelectionRange(1, 1)\n }\n }\n input.style.caretColor = 'initial'\n }}\n className=\"relay:text-center relay:whitespace-pre\"\n inputStyle={{\n fontWeight: '700',\n fontSize: 48,\n lineHeight: '58px',\n textAlign: 'center',\n textIndent:\n amount === '' || amountToToken === ''\n ? '-36px'\n : undefined,\n whiteSpace: 'pre'\n }}\n containerClassName=\"relay:mb-2 relay:w-full\"\n />\n {notEnoughFiat ? (\n <Text color=\"red\" className=\"relay:mb-[24px] relay:text-center\">\n Minimum amount is{' '}\n {displayCurrency && minAmountCurrency\n ? `${minAmountCurrency} ${token.symbol}`\n : '$20'}\n </Text>\n ) : undefined}\n <button\n className=\"relay:gap-2 relay:cursor-pointer relay:flex relay:items-center relay:justify-center relay:mb-[16px] relay:self-center\"\n onClick={() => {\n const _displayCurrency = !displayCurrency\n setDisplayCurrency(_displayCurrency)\n if (_displayCurrency) {\n let _amountToToken = 21 / usdRate\n if (+amountToToken > _amountToToken) {\n _amountToToken = +amountToToken\n }\n setInputValue(\n formatBN(_amountToToken, 5, token.decimals, false),\n _displayCurrency\n )\n }\n }}\n >\n <Text style=\"body2\" color=\"subtle\">\n {displayCurrency\n ? formattedAmount\n : `${amountToTokenFormatted} ${token.symbol}`}\n </Text>\n <Flex\n className=\"relay:text-[color:var(--relay-colors-gray8)]\"\n >\n <FontAwesomeIcon\n className=\"relay:h-[14px]\"\n icon={faArrowUpLong}\n />\n <FontAwesomeIcon\n className=\"relay:h-[14px]\"\n icon={faArrowDownLong}\n />\n </Flex>\n </button>\n <TokenSelector\n address={recipient}\n isValidAddress={isValidRecipient}\n token={token}\n onAnalyticEvent={onAnalyticEvent}\n fromChainWalletVMSupported={false}\n supportedWalletVMs={[]}\n setToken={(token) => {\n setToken(token)\n onTokenChange?.(token)\n }}\n context=\"to\"\n trigger={\n <div\n className=\"relay:w-max relay:mx-auto relay:mb-[16px]\"\n data-testid=\"onramp-token-select-button\"\n >\n <TokenTrigger token={token} />\n </div>\n }\n />\n <Flex className=\"relay:gap-2 relay:mx-auto\">\n <Button\n color=\"white\"\n corners=\"pill\"\n size=\"none\"\n className=\"relay:h-[30px] relay:px-[14px] relay:py-[4px] relay:text-[14px]\"\n onClick={() => {\n setDisplayCurrency(false)\n setInputValue('100', false)\n }}\n >\n <Text style=\"subtitle2\">$100</Text>\n </Button>\n <Button\n color=\"white\"\n corners=\"pill\"\n size=\"none\"\n className=\"relay:h-[30px] relay:px-[14px] relay:py-[4px] relay:text-[14px]\"\n onClick={() => {\n setDisplayCurrency(false)\n setInputValue('300', false)\n }}\n >\n <Text style=\"subtitle2\">$300</Text>\n </Button>\n <Button\n color=\"white\"\n corners=\"pill\"\n size=\"none\"\n className=\"relay:h-[30px] relay:px-[14px] relay:py-[4px] relay:text-[14px]\"\n onClick={() => {\n setDisplayCurrency(false)\n setInputValue('1000', false)\n }}\n >\n <Text style=\"subtitle2\">$1,000</Text>\n </Button>\n </Flex>\n </Flex>\n </Flex>\n <Flex\n direction=\"column\"\n className=\"relay:w-full relay:overflow-hidden relay:p-4 relay:rounded-widget-card relay:bg-[var(--relay-colors-widget-background)] relay:border-widget-card relay:mb-[var(--relay-spacing-widget-card-section-gutter)]\"\n >\n <Flex justify=\"between\" align=\"center\" className=\"relay:mb-2\">\n <Text color=\"subtle\" style=\"subtitle2\">\n Recipient\n </Text>\n {multiWalletSupportEnabled === true &&\n toChainWalletVMSupported ? (\n <MultiWalletDropdown\n context=\"destination\"\n selectedWalletAddress={recipient}\n onSelect={(wallet) => setRecipient(wallet.address)}\n chain={toChain}\n onLinkNewWallet={() => {\n if (\n (!linkedWallets || linkedWallets.length === 0) &&\n toChainWalletVMSupported\n ) {\n onConnectWallet?.()\n } else {\n onLinkNewWallet?.({\n chain: toChain,\n direction: 'to'\n })?.then((wallet) => {\n onSetPrimaryWallet?.(wallet.address)\n })\n }\n }}\n setAddressModalOpen={setAddressModalOpen}\n wallets={linkedWallets!}\n onAnalyticEvent={onAnalyticEvent}\n disablePasteWalletAddressOption={\n disablePasteWalletAddressOption\n }\n testId=\"onramp-wallet-select-button\"\n />\n ) : null}\n {!multiWalletSupportEnabled || !toChainWalletVMSupported ? (\n <Button\n color={\n isValidRecipient && !isRecipientLinked\n ? 'warning'\n : 'secondary'\n }\n corners=\"pill\"\n size=\"none\"\n className=\"relay:flex relay:items-center relay:px-2 relay:py-1\"\n onClick={() => {\n setAddressModalOpen(true)\n onAnalyticEvent?.(EventNames.SWAP_ADDRESS_MODAL_CLICKED)\n }}\n >\n {isValidRecipient && !isRecipientLinked ? (\n <Box className=\"relay:text-[color:var(--relay-colors-amber11)]\">\n <FontAwesomeIcon\n icon={faClipboard}\n width={16}\n height={16}\n />\n </Box>\n ) : null}\n <Text\n style=\"subtitle2\"\n className={\n isValidRecipient && !isRecipientLinked\n ? 'relay:text-[color:var(--relay-colors-amber11)]'\n : 'relay:text-[color:var(--relay-colors-anchor-color)]'\n }\n >\n {!isValidRecipient ? `Enter Address` : toDisplayName}\n </Text>\n </Button>\n ) : null}\n </Flex>\n <Flex justify=\"between\" align=\"center\">\n <Text color=\"subtle\" style=\"subtitle2\">\n Paying with\n </Text>\n <Flex\n className=\"relay:items-center relay:gap-2 relay:ml-auto relay:mr-2 relay:text-[color:var(--relay-colors-gray9)]\"\n >\n <FontAwesomeIcon style={{ width: 16 }} icon={faCreditCard} />\n <Text style=\"subtitle2\">Card</Text>\n </Flex>\n {/* Hiding this until issues are resolved with MoonPay\n <FiatCurrencyModal\n fiatCurrency={fiatCurrency}\n setFiatCurrency={setFiatCurrency}\n moonPayApiKey={moonPayApiKey}\n /> */}\n </Flex>\n </Flex>\n <Button\n cta={true}\n className=\"relay:w-full relay:justify-center\"\n disabled={notEnoughFiat}\n onClick={() => {\n haptic('medium')\n if (!recipient && toChainWalletVMSupported) {\n if (!linkedWallets || linkedWallets.length === 0) {\n onConnectWallet?.()\n } else {\n onLinkNewWallet?.({\n chain: toChain,\n direction: 'to'\n })?.then((wallet) => {\n onSetPrimaryWallet?.(wallet.address)\n })\n }\n } else if (!recipient) {\n setAddressModalOpen(true)\n } else {\n setOnrampModalOpen(true)\n }\n }}\n >\n {ctaCopy}\n </Button>\n <CustomAddressModal\n open={addressModalOpen}\n toToken={token}\n toAddress={recipient}\n toChain={toChain}\n isConnected={\n (linkedWallets && linkedWallets.length > 0) || isConnected\n ? true\n : false\n }\n linkedWallets={linkedWallets ?? []}\n multiWalletSupportEnabled={multiWalletSupportEnabled}\n onAnalyticEvent={onAnalyticEvent}\n onOpenChange={(open) => {\n setAddressModalOpen(open)\n }}\n onConfirmed={(address) => {\n setRecipient(address)\n }}\n onClear={() => {\n setRecipient(undefined)\n }}\n />\n <OnrampModal\n open={onrampModalOpen}\n onOpenChange={setOnrampModalOpen}\n onAnalyticEvent={onAnalyticEvent}\n moonpayOnUrlSignatureRequested={moonpayOnUrlSignatureRequested}\n fromToken={fromToken}\n toToken={token}\n fromChain={fromChain}\n toChain={toChain}\n amount={amount}\n amountFormatted={formattedAmount}\n amountToTokenFormatted={amountToTokenFormatted}\n fiatCurrency={fiatCurrency}\n recipient={recipient}\n onSuccess={onSuccess}\n moonPayCurrencyCode={moonPayCurrencyCode}\n isPassthrough={isPassthrough}\n usdRate={usdRate}\n moonPayThemeId={moonPayThemeId}\n moonPayThemeMode={moonPayThemeMode}\n moonPayApiKey={moonPayApiKey}\n />\n </div>\n )\n }}\n </OnrampWidgetRenderer>\n )\n}\n\nexport default OnrampWidget\n"]}
|
|
@@ -83,7 +83,7 @@ const SwapWidgetRenderer = ({ transactionModalOpen, setTransactionModalOpen, dep
|
|
|
83
83
|
setCustomToAddress
|
|
84
84
|
]);
|
|
85
85
|
const recipient = customToAddress ?? defaultRecipient ?? address;
|
|
86
|
-
const { value: fromBalance, queryKey: fromBalanceQueryKey, isLoading: isLoadingFromBalance, isError: fromBalanceErrorFetching,
|
|
86
|
+
const { value: fromBalance, queryKey: fromBalanceQueryKey, isLoading: isLoadingFromBalance, isError: fromBalanceErrorFetching, hasPendingBalance: fromBalancePending } = (0, index_js_1.useCurrencyBalance)({
|
|
87
87
|
chain: fromChain,
|
|
88
88
|
address: address,
|
|
89
89
|
currency: fromToken?.address ? fromToken.address : undefined,
|
|
@@ -91,7 +91,7 @@ const SwapWidgetRenderer = ({ transactionModalOpen, setTransactionModalOpen, dep
|
|
|
91
91
|
refreshInterval: undefined,
|
|
92
92
|
wallet
|
|
93
93
|
});
|
|
94
|
-
const { value: toBalance, queryKey: toBalanceQueryKey, isLoading: isLoadingToBalance,
|
|
94
|
+
const { value: toBalance, queryKey: toBalanceQueryKey, isLoading: isLoadingToBalance, hasPendingBalance: toBalancePending } = (0, index_js_1.useCurrencyBalance)({
|
|
95
95
|
chain: toChain,
|
|
96
96
|
address: recipient,
|
|
97
97
|
currency: toToken?.address ? toToken.address : undefined,
|
|
@@ -100,43 +100,10 @@ const SwapWidgetRenderer = ({ transactionModalOpen, setTransactionModalOpen, dep
|
|
|
100
100
|
wallet
|
|
101
101
|
});
|
|
102
102
|
const invalidateBalanceQueries = (0, react_1.useCallback)(() => {
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
if (maxRefreshes === refreshCount) {
|
|
108
|
-
clearInterval(timer);
|
|
109
|
-
return;
|
|
110
|
-
}
|
|
111
|
-
refreshCount++;
|
|
112
|
-
invalidateFn();
|
|
113
|
-
}, 3000);
|
|
114
|
-
};
|
|
115
|
-
queryClient.invalidateQueries({ queryKey: ['useDuneBalances'] });
|
|
116
|
-
if (fromBalanceIsDune) {
|
|
117
|
-
invalidatePeriodically(() => {
|
|
118
|
-
queryClient.invalidateQueries({ queryKey: fromBalanceQueryKey });
|
|
119
|
-
});
|
|
120
|
-
}
|
|
121
|
-
else {
|
|
122
|
-
queryClient.invalidateQueries({ queryKey: fromBalanceQueryKey });
|
|
123
|
-
}
|
|
124
|
-
if (toBalanceIsDune) {
|
|
125
|
-
invalidatePeriodically(() => {
|
|
126
|
-
queryClient.invalidateQueries({ queryKey: toBalanceQueryKey });
|
|
127
|
-
});
|
|
128
|
-
}
|
|
129
|
-
else {
|
|
130
|
-
queryClient.invalidateQueries({ queryKey: toBalanceQueryKey });
|
|
131
|
-
}
|
|
132
|
-
}, [
|
|
133
|
-
queryClient,
|
|
134
|
-
fromBalanceQueryKey,
|
|
135
|
-
toBalanceQueryKey,
|
|
136
|
-
toBalanceIsDune,
|
|
137
|
-
fromBalanceIsDune,
|
|
138
|
-
address
|
|
139
|
-
]);
|
|
103
|
+
queryClient.invalidateQueries({ queryKey: ['useCodexBalances'] });
|
|
104
|
+
queryClient.invalidateQueries({ queryKey: fromBalanceQueryKey });
|
|
105
|
+
queryClient.invalidateQueries({ queryKey: toBalanceQueryKey });
|
|
106
|
+
}, [queryClient, fromBalanceQueryKey, toBalanceQueryKey, address]);
|
|
140
107
|
const { data: capabilities } = (0, experimental_1.useCapabilities)({
|
|
141
108
|
query: {
|
|
142
109
|
enabled: connector &&
|
|
@@ -157,8 +124,18 @@ const SwapWidgetRenderer = ({ transactionModalOpen, setTransactionModalOpen, dep
|
|
|
157
124
|
: undefined) !== undefined;
|
|
158
125
|
const isValidFromAddress = (0, address_js_1.isValidAddress)(fromChain?.vmType, address ?? '', fromChain?.id, linkedWallet?.connector, connectorKeyOverrides);
|
|
159
126
|
const fromAddressWithFallback = (0, address_js_1.addressWithFallback)(fromChain?.vmType, address, fromChain?.id, linkedWallet?.connector, connectorKeyOverrides);
|
|
160
|
-
const
|
|
161
|
-
|
|
127
|
+
const recipientIsDestinationToken = Boolean(toChain &&
|
|
128
|
+
toToken &&
|
|
129
|
+
toToken.chainId === toChain.id &&
|
|
130
|
+
(0, address_js_1.addressesEqual)(toChain.vmType ?? 'evm', recipient, toToken.address));
|
|
131
|
+
const { isKnownTokenContract: recipientMatchesKnownToken } = (0, index_js_1.useKnownTokenContract)(toChain, customToAddress, customToAddress !== undefined && !recipientIsDestinationToken);
|
|
132
|
+
const recipientIsKnownTokenContract = recipientMatchesKnownToken;
|
|
133
|
+
const isValidToAddress = !recipientIsDestinationToken &&
|
|
134
|
+
!recipientIsKnownTokenContract &&
|
|
135
|
+
(0, address_js_1.isValidAddress)(toChain?.vmType, recipient ?? '', toChain?.id);
|
|
136
|
+
const toAddressWithFallback = (0, address_js_1.addressWithFallback)(toChain?.vmType, recipientIsDestinationToken || recipientIsKnownTokenContract
|
|
137
|
+
? undefined
|
|
138
|
+
: recipient, toChain?.id);
|
|
162
139
|
const { displayName: toDisplayName } = (0, index_js_1.useDisplayName)(recipient, toChain?.vmType, toChain?.id);
|
|
163
140
|
const [currentSlippageTolerance, setCurrentSlippageTolerance] = (0, react_1.useState)(slippageTolerance);
|
|
164
141
|
(0, react_1.useEffect)(() => {
|
|
@@ -465,6 +442,9 @@ const SwapWidgetRenderer = ({ transactionModalOpen, setTransactionModalOpen, dep
|
|
|
465
442
|
if (!wallet && !walletClient.data) {
|
|
466
443
|
throw new Error('Missing a wallet');
|
|
467
444
|
}
|
|
445
|
+
if (recipientMatchesKnownToken) {
|
|
446
|
+
throw new Error('Recipient address is a token contract, not a wallet');
|
|
447
|
+
}
|
|
468
448
|
setSteps(quote?.steps);
|
|
469
449
|
setQuoteInProgress(quote);
|
|
470
450
|
setTransactionModalOpen(true);
|
|
@@ -590,7 +570,8 @@ const SwapWidgetRenderer = ({ transactionModalOpen, setTransactionModalOpen, dep
|
|
|
590
570
|
setQuoteInProgress,
|
|
591
571
|
invalidateBalanceQueries,
|
|
592
572
|
linkedWallet,
|
|
593
|
-
abortController
|
|
573
|
+
abortController,
|
|
574
|
+
recipientMatchesKnownToken
|
|
594
575
|
]);
|
|
595
576
|
return ((0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, { children: children({
|
|
596
577
|
quote,
|