@relayprotocol/relay-kit-ui 11.0.2 → 11.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (78) hide show
  1. package/_cjs/src/components/common/TokenSelector/PaymentMethod.js.map +1 -1
  2. package/_cjs/src/components/common/TokenSelector/TokenSelector.js.map +1 -1
  3. package/_cjs/src/components/common/TransactionModal/TransactionModalRenderer.js +6 -0
  4. package/_cjs/src/components/common/TransactionModal/TransactionModalRenderer.js.map +1 -1
  5. package/_cjs/src/components/widgets/OnrampWidget/widget/OnrampWidgetRenderer.js.map +1 -1
  6. package/_cjs/src/components/widgets/OnrampWidget/widget/index.js.map +1 -1
  7. package/_cjs/src/components/widgets/SwapWidget/index.js +0 -2
  8. package/_cjs/src/components/widgets/SwapWidget/index.js.map +1 -1
  9. package/_cjs/src/components/widgets/SwapWidgetRenderer.js.map +1 -1
  10. package/_cjs/src/components/widgets/WidgetErrorWell.js +0 -1
  11. package/_cjs/src/components/widgets/WidgetErrorWell.js.map +1 -1
  12. package/_cjs/src/constants/depositAddresses.js +2 -1
  13. package/_cjs/src/constants/depositAddresses.js.map +1 -1
  14. package/_cjs/src/constants/walletCompatibility.js +2 -1
  15. package/_cjs/src/constants/walletCompatibility.js.map +1 -1
  16. package/_cjs/src/utils/address.js +4 -0
  17. package/_cjs/src/utils/address.js.map +1 -1
  18. package/_cjs/src/utils/relayTransaction.js +4 -3
  19. package/_cjs/src/utils/relayTransaction.js.map +1 -1
  20. package/_cjs/src/utils/solana.js +1 -1
  21. package/_cjs/src/utils/solana.js.map +1 -1
  22. package/_cjs/src/utils/xrp.js +46 -0
  23. package/_cjs/src/utils/xrp.js.map +1 -0
  24. package/_cjs/src/version.js +1 -1
  25. package/_cjs/src/version.js.map +1 -1
  26. package/_cjs/tsconfig.build.tsbuildinfo +1 -1
  27. package/_esm/src/components/common/TokenSelector/PaymentMethod.js.map +1 -1
  28. package/_esm/src/components/common/TokenSelector/TokenSelector.js.map +1 -1
  29. package/_esm/src/components/common/TransactionModal/TransactionModalRenderer.js +8 -0
  30. package/_esm/src/components/common/TransactionModal/TransactionModalRenderer.js.map +1 -1
  31. package/_esm/src/components/widgets/OnrampWidget/widget/OnrampWidgetRenderer.js.map +1 -1
  32. package/_esm/src/components/widgets/OnrampWidget/widget/index.js.map +1 -1
  33. package/_esm/src/components/widgets/SwapWidget/index.js +1 -3
  34. package/_esm/src/components/widgets/SwapWidget/index.js.map +1 -1
  35. package/_esm/src/components/widgets/SwapWidgetRenderer.js.map +1 -1
  36. package/_esm/src/components/widgets/WidgetErrorWell.js +1 -2
  37. package/_esm/src/components/widgets/WidgetErrorWell.js.map +1 -1
  38. package/_esm/src/constants/depositAddresses.js +2 -1
  39. package/_esm/src/constants/depositAddresses.js.map +1 -1
  40. package/_esm/src/constants/walletCompatibility.js +2 -1
  41. package/_esm/src/constants/walletCompatibility.js.map +1 -1
  42. package/_esm/src/utils/address.js +4 -0
  43. package/_esm/src/utils/address.js.map +1 -1
  44. package/_esm/src/utils/relayTransaction.js +11 -3
  45. package/_esm/src/utils/relayTransaction.js.map +1 -1
  46. package/_esm/src/utils/solana.js +1 -1
  47. package/_esm/src/utils/solana.js.map +1 -1
  48. package/_esm/src/utils/xrp.js +55 -0
  49. package/_esm/src/utils/xrp.js.map +1 -0
  50. package/_esm/src/version.js +1 -1
  51. package/_esm/src/version.js.map +1 -1
  52. package/_esm/tsconfig.build.tsbuildinfo +1 -1
  53. package/_types/src/components/common/TokenSelector/PaymentMethod.d.ts +1 -1
  54. package/_types/src/components/common/TokenSelector/PaymentMethod.d.ts.map +1 -1
  55. package/_types/src/components/common/TokenSelector/TokenSelector.d.ts +1 -1
  56. package/_types/src/components/common/TokenSelector/TokenSelector.d.ts.map +1 -1
  57. package/_types/src/components/common/TransactionModal/TransactionModalRenderer.d.ts.map +1 -1
  58. package/_types/src/components/widgets/OnrampWidget/widget/OnrampWidgetRenderer.d.ts +1 -1
  59. package/_types/src/components/widgets/OnrampWidget/widget/OnrampWidgetRenderer.d.ts.map +1 -1
  60. package/_types/src/components/widgets/OnrampWidget/widget/index.d.ts +1 -1
  61. package/_types/src/components/widgets/OnrampWidget/widget/index.d.ts.map +1 -1
  62. package/_types/src/components/widgets/SwapWidget/index.d.ts +1 -1
  63. package/_types/src/components/widgets/SwapWidget/index.d.ts.map +1 -1
  64. package/_types/src/components/widgets/SwapWidgetRenderer.d.ts +2 -2
  65. package/_types/src/components/widgets/SwapWidgetRenderer.d.ts.map +1 -1
  66. package/_types/src/components/widgets/WidgetErrorWell.d.ts.map +1 -1
  67. package/_types/src/constants/depositAddresses.d.ts.map +1 -1
  68. package/_types/src/constants/walletCompatibility.d.ts.map +1 -1
  69. package/_types/src/utils/address.d.ts +1 -1
  70. package/_types/src/utils/address.d.ts.map +1 -1
  71. package/_types/src/utils/relayTransaction.d.ts +6 -0
  72. package/_types/src/utils/relayTransaction.d.ts.map +1 -1
  73. package/_types/src/utils/solana.d.ts.map +1 -1
  74. package/_types/src/utils/xrp.d.ts +12 -0
  75. package/_types/src/utils/xrp.d.ts.map +1 -0
  76. package/_types/src/version.d.ts +1 -1
  77. package/_types/tsconfig.build.tsbuildinfo +1 -1
  78. package/package.json +3 -3
@@ -1 +1 @@
1
- {"version":3,"file":"OnrampWidgetRenderer.js","sourceRoot":"","sources":["../../../../../../src/components/widgets/OnrampWidget/widget/OnrampWidgetRenderer.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n useCallback,\n useContext,\n useEffect,\n useMemo,\n useState,\n type Dispatch,\n type FC,\n type ReactNode,\n type SetStateAction\n} from 'react'\nimport {\n useRelayClient,\n useIsPassthrough,\n useSupportedMoonPayCurrencyCode,\n useFallbackState,\n useDisplayName\n} from '../../../../hooks/index.js'\nimport { zeroAddress } from 'viem'\nimport { type ChainVM, type RelayChain } from '@relayprotocol/relay-sdk'\nimport type {\n FiatCurrency,\n LinkedWallet,\n Token\n} from '../../../../types/index.js'\nimport { ProviderOptionsContext } from '../../../../providers/RelayKitProvider.js'\nimport {\n findSupportedWallet,\n isChainVmTypeSupported,\n isValidAddress\n} from '../../../../utils/address.js'\nimport useWalletAddress from '../../../../hooks/useWalletAddress.js'\nimport { useTokenPrice } from '@relayprotocol/relay-kit-hooks'\nimport { formatBN } from '../../../../utils/numbers.js'\nimport { UnsupportedDepositAddressChainIds } from '../../../../constants/depositAddresses.js'\n\nexport type ChildrenProps = {\n displayCurrency: boolean\n setDisplayCurrency: React.Dispatch<React.SetStateAction<boolean>>\n recipient?: string\n setRecipient: React.Dispatch<React.SetStateAction<string | undefined>>\n isRecipientLinked: boolean\n isValidRecipient: boolean\n amount: string\n setAmount: React.Dispatch<React.SetStateAction<string>>\n amountToToken: string\n setAmountToToken: React.Dispatch<React.SetStateAction<string>>\n setInputValue: (value: string, overrideDisplayCurrency?: boolean) => void\n fiatCurrency: FiatCurrency\n setFiatCurrency: React.Dispatch<React.SetStateAction<FiatCurrency>>\n token: Token\n fromToken: Token\n setToken: React.Dispatch<React.SetStateAction<Token>>\n toChain?: RelayChain\n fromChain?: RelayChain\n toDisplayName?: string\n toChainWalletVMSupported?: boolean\n amountToTokenFormatted?: string\n usdRate: number\n minAmountCurrency?: string\n ctaCopy: string\n notEnoughFiat: boolean\n isPassthrough: boolean\n moonPayCurrencyCode: string\n}\n\ntype OnrampWidgetRendererProps = {\n defaultWalletAddress?: string\n supportedWalletVMs: Omit<ChainVM, 'hypevm' | 'lvm'>[]\n linkedWallets?: LinkedWallet[]\n multiWalletSupportEnabled?: boolean\n moonPayApiKey: string\n token?: Token\n setToken?: (token: Token) => void\n children: (props: ChildrenProps) => ReactNode\n}\n\nconst OnrampWidgetRenderer: FC<OnrampWidgetRendererProps> = ({\n defaultWalletAddress,\n linkedWallets,\n supportedWalletVMs,\n multiWalletSupportEnabled,\n moonPayApiKey,\n token: _token,\n setToken: _setToken,\n children\n}) => {\n const client = useRelayClient()\n const providerOptionsContext = useContext(ProviderOptionsContext)\n const connectorKeyOverrides = providerOptionsContext.vmConnectorKeyOverrides\n const [token, setToken] = useFallbackState(\n _token && _setToken\n ? _token\n : {\n address: zeroAddress,\n chainId: 8453,\n name: 'ETH',\n symbol: 'ETH',\n decimals: 18,\n logoURI: 'https://assets.relay.link/icons/currencies/eth.png'\n },\n _token && _setToken\n ? [_token, _setToken as Dispatch<SetStateAction<Token>>]\n : undefined\n )\n useEffect(() => {\n if (\n _token &&\n _setToken &&\n UnsupportedDepositAddressChainIds.includes(token.chainId)\n ) {\n setToken({\n address: zeroAddress,\n chainId: 8453,\n name: 'ETH',\n symbol: 'ETH',\n decimals: 18,\n logoURI: 'https://assets.relay.link/icons/currencies/eth.png'\n })\n }\n }, [_token])\n\n const [displayCurrency, setDisplayCurrency] = useState(false)\n const { data: usdTokenPriceResponse } = useTokenPrice(\n client?.baseApiUrl,\n {\n address: token.address,\n chainId: token.chainId,\n referrer: client?.source\n },\n {\n refetchInterval: 60000 * 5, //5 minutes\n refetchOnWindowFocus: false\n }\n )\n const usdRate = usdTokenPriceResponse?.price ?? 0\n const minAmountCurrency = formatBN(20 / usdRate, 5, token.decimals, false)\n\n const toChain = useMemo(\n () => client?.chains.find((chain) => chain.id === token.chainId),\n [token, client?.chains]\n )\n const toChainWalletVMSupported =\n isChainVmTypeSupported(toChain?.vmType, supportedWalletVMs)\n\n const moonPayCurrency = useSupportedMoonPayCurrencyCode(\n [\n 'usdc_base',\n 'usdc_polygon',\n 'usdc',\n 'eth',\n 'eth_arbitrum',\n 'eth_optimism'\n ],\n moonPayApiKey,\n token\n )\n\n const fromToken: Token = {\n chainId: +moonPayCurrency.chainId,\n address: moonPayCurrency.contractAddress,\n symbol: moonPayCurrency.code.includes('eth') ? 'ETH' : 'USDC',\n name: moonPayCurrency.code.includes('eth') ? 'ETH' : 'USDC',\n logoURI: moonPayCurrency.code.includes('eth')\n ? 'https://assets.relay.link/icons/1/light.png'\n : 'https://coin-images.coingecko.com/coins/images/6319/large/usdc.png?1696506694',\n decimals: moonPayCurrency.code.includes('eth') ? 18 : 6\n }\n\n const fromChain = useMemo(\n () => client?.chains.find((chain) => chain.id === +moonPayCurrency.chainId),\n [fromToken, client?.chains, moonPayCurrency]\n )\n\n const [amount, setAmount] = useState('20')\n const [amountToToken, setAmountToToken] = useState('')\n const [recipient, setRecipient] = useState<string | undefined>(\n defaultWalletAddress\n )\n const { displayName: toDisplayName } = useDisplayName(\n recipient,\n toChain?.vmType,\n toChain?.id\n )\n\n const [fiatCurrency, setFiatCurrency] = useState<FiatCurrency>({\n name: 'US Dollar',\n code: 'usd',\n minAmount: 20,\n icon: 'https://static.moonpay.com/widget/currencies/usd.svg'\n })\n\n const address = useWalletAddress(undefined, linkedWallets)\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 _isValidRecipient = isValidAddress(\n toChain?.vmType,\n recipient ?? '',\n toChain?.id,\n _linkedWallet?.address === recipient\n ? _linkedWallet?.connector\n : undefined,\n connectorKeyOverrides\n )\n if (\n multiWalletSupportEnabled &&\n toChain &&\n linkedWallets &&\n !_isValidRecipient\n ) {\n const supportedAddress = findSupportedWallet(\n toChain,\n recipient,\n linkedWallets,\n connectorKeyOverrides\n )\n\n return supportedAddress\n }\n }, [\n multiWalletSupportEnabled,\n toChain,\n recipient,\n linkedWallets,\n setRecipient\n ])\n\n const _recipient =\n recipient && recipient.length > 0 ? recipient : defaultRecipient\n\n const isRecipientLinked =\n (_recipient\n ? linkedWallets?.find((wallet) => wallet.address === _recipient) ||\n address === _recipient\n : undefined) !== undefined\n\n const isValidRecipient = isValidAddress(\n toChain?.vmType,\n _recipient ?? '',\n toChain?.id\n )\n\n const { isPassthrough, moonPayCurrency: passThroughCurrency } =\n useIsPassthrough(token, moonPayApiKey)\n\n useEffect(() => {\n setInputValue(displayCurrency ? amountToToken : amount)\n }, [usdRate])\n\n const amountToTokenFormatted = amountToToken\n ? formatBN(parseFloat(amountToToken), 5, token.decimals)\n : '-'\n\n const setInputValue = useCallback(\n (inputValue: string, overrideDisplayCurrency?: boolean) => {\n const _displayCurrency =\n overrideDisplayCurrency !== undefined\n ? overrideDisplayCurrency\n : displayCurrency\n if (_displayCurrency) {\n const _amountToToken = inputValue.replace(/[^0-9.]+/g, '')\n setAmountToToken(_amountToToken)\n const _amount =\n _amountToToken && +_amountToToken > 0 ? +_amountToToken * usdRate : 0\n setAmount(`${parseFloat(_amount.toFixed(2))}`)\n } else {\n let _amount = ''\n const numericValue = inputValue\n .replace(/[^0-9.]/g, '')\n .replace(/(\\..*?)(\\..*)/, '$1')\n .replace(/(\\.\\d{2})\\d+/, '$1')\n const regex = /^[0-9]+(\\.[0-9]*)?$/\n if (numericValue === '.' || numericValue.includes(',')) {\n _amount = '0.'\n } else if (regex.test(numericValue) || numericValue === '') {\n _amount = numericValue\n }\n const _amountToToken = _amount && +_amount > 0 ? +_amount / usdRate : 0\n setAmount(_amount)\n setAmountToToken(`${_amountToToken}`)\n }\n },\n [usdRate, displayCurrency]\n )\n\n const notEnoughFiat = !amount || +amount < 20\n let ctaCopy = 'Buy'\n if (notEnoughFiat) {\n ctaCopy = 'Enter an amount'\n } else if (!_recipient && toChainWalletVMSupported) {\n ctaCopy = `Connect Wallet`\n } else if (!_recipient) {\n ctaCopy = `Enter ${toChain?.displayName} address`\n }\n\n return (\n <>\n {children({\n displayCurrency,\n setDisplayCurrency,\n recipient: _recipient,\n setRecipient,\n isRecipientLinked,\n isValidRecipient,\n amount,\n setAmount,\n amountToToken,\n setAmountToToken,\n setInputValue,\n token,\n fromToken,\n setToken,\n toChain,\n fromChain,\n toDisplayName,\n toChainWalletVMSupported,\n fiatCurrency,\n setFiatCurrency,\n amountToTokenFormatted,\n usdRate,\n minAmountCurrency,\n notEnoughFiat,\n ctaCopy,\n isPassthrough,\n moonPayCurrencyCode:\n isPassthrough && passThroughCurrency?.code\n ? passThroughCurrency?.code\n : moonPayCurrency.code\n })}\n </>\n )\n}\n\nexport default OnrampWidgetRenderer\n"]}
1
+ {"version":3,"file":"OnrampWidgetRenderer.js","sourceRoot":"","sources":["../../../../../../src/components/widgets/OnrampWidget/widget/OnrampWidgetRenderer.tsx"],"names":[],"mappings":";;;;AAAA,iCAUc;AACd,yDAMmC;AACnC,+BAAkC;AAOlC,mFAAkF;AAClF,6DAIqC;AACrC,wGAAoE;AACpE,oEAA8D;AAC9D,6DAAuD;AACvD,mFAA6F;AA2C7F,MAAM,oBAAoB,GAAkC,CAAC,EAC3D,oBAAoB,EACpB,aAAa,EACb,kBAAkB,EAClB,yBAAyB,EACzB,aAAa,EACb,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,SAAS,EACnB,QAAQ,EACT,EAAE,EAAE;IACH,MAAM,MAAM,GAAG,IAAA,yBAAc,GAAE,CAAA;IAC/B,MAAM,sBAAsB,GAAG,IAAA,kBAAU,EAAC,4CAAsB,CAAC,CAAA;IACjE,MAAM,qBAAqB,GAAG,sBAAsB,CAAC,uBAAuB,CAAA;IAC5E,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,IAAA,2BAAgB,EACxC,MAAM,IAAI,SAAS;QACjB,CAAC,CAAC,MAAM;QACR,CAAC,CAAC;YACE,OAAO,EAAE,kBAAW;YACpB,OAAO,EAAE,IAAI;YACb,IAAI,EAAE,KAAK;YACX,MAAM,EAAE,KAAK;YACb,QAAQ,EAAE,EAAE;YACZ,OAAO,EAAE,oDAAoD;SAC9D,EACL,MAAM,IAAI,SAAS;QACjB,CAAC,CAAC,CAAC,MAAM,EAAE,SAA4C,CAAC;QACxD,CAAC,CAAC,SAAS,CACd,CAAA;IACD,IAAA,iBAAS,EAAC,GAAG,EAAE;QACb,IACE,MAAM;YACN,SAAS;YACT,uDAAiC,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,EACzD,CAAC;YACD,QAAQ,CAAC;gBACP,OAAO,EAAE,kBAAW;gBACpB,OAAO,EAAE,IAAI;gBACb,IAAI,EAAE,KAAK;gBACX,MAAM,EAAE,KAAK;gBACb,QAAQ,EAAE,EAAE;gBACZ,OAAO,EAAE,oDAAoD;aAC9D,CAAC,CAAA;QACJ,CAAC;IACH,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAA;IAEZ,MAAM,CAAC,eAAe,EAAE,kBAAkB,CAAC,GAAG,IAAA,gBAAQ,EAAC,KAAK,CAAC,CAAA;IAC7D,MAAM,EAAE,IAAI,EAAE,qBAAqB,EAAE,GAAG,IAAA,+BAAa,EACnD,MAAM,EAAE,UAAU,EAClB;QACE,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,QAAQ,EAAE,MAAM,EAAE,MAAM;KACzB,EACD;QACE,eAAe,EAAE,KAAK,GAAG,CAAC;QAC1B,oBAAoB,EAAE,KAAK;KAC5B,CACF,CAAA;IACD,MAAM,OAAO,GAAG,qBAAqB,EAAE,KAAK,IAAI,CAAC,CAAA;IACjD,MAAM,iBAAiB,GAAG,IAAA,qBAAQ,EAAC,EAAE,GAAG,OAAO,EAAE,CAAC,EAAE,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAA;IAE1E,MAAM,OAAO,GAAG,IAAA,eAAO,EACrB,GAAG,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,KAAK,CAAC,OAAO,CAAC,EAChE,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,CACxB,CAAA;IACD,MAAM,wBAAwB,GAC5B,IAAA,mCAAsB,EAAC,OAAO,EAAE,MAAM,EAAE,kBAAkB,CAAC,CAAA;IAE7D,MAAM,eAAe,GAAG,IAAA,0CAA+B,EACrD;QACE,WAAW;QACX,cAAc;QACd,MAAM;QACN,KAAK;QACL,cAAc;QACd,cAAc;KACf,EACD,aAAa,EACb,KAAK,CACN,CAAA;IAED,MAAM,SAAS,GAAU;QACvB,OAAO,EAAE,CAAC,eAAe,CAAC,OAAO;QACjC,OAAO,EAAE,eAAe,CAAC,eAAe;QACxC,MAAM,EAAE,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM;QAC7D,IAAI,EAAE,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM;QAC3D,OAAO,EAAE,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;YAC3C,CAAC,CAAC,6CAA6C;YAC/C,CAAC,CAAC,+EAA+E;QACnF,QAAQ,EAAE,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;KACxD,CAAA;IAED,MAAM,SAAS,GAAG,IAAA,eAAO,EACvB,GAAG,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,eAAe,CAAC,OAAO,CAAC,EAC3E,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,eAAe,CAAC,CAC7C,CAAA;IAED,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,IAAA,gBAAQ,EAAC,IAAI,CAAC,CAAA;IAC1C,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,IAAA,gBAAQ,EAAC,EAAE,CAAC,CAAA;IACtD,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,IAAA,gBAAQ,EACxC,oBAAoB,CACrB,CAAA;IACD,MAAM,EAAE,WAAW,EAAE,aAAa,EAAE,GAAG,IAAA,yBAAc,EACnD,SAAS,EACT,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,EAAE,CACZ,CAAA;IAED,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,IAAA,gBAAQ,EAAe;QAC7D,IAAI,EAAE,WAAW;QACjB,IAAI,EAAE,KAAK;QACX,SAAS,EAAE,EAAE;QACb,IAAI,EAAE,sDAAsD;KAC7D,CAAC,CAAA;IAEF,MAAM,OAAO,GAAG,IAAA,6BAAgB,EAAC,SAAS,EAAE,aAAa,CAAC,CAAA;IAE1D,MAAM,gBAAgB,GAAG,IAAA,eAAO,EAAC,GAAG,EAAE;QACpC,MAAM,aAAa,GAAG,aAAa,EAAE,IAAI,CACvC,CAAC,YAAY,EAAE,EAAE,CACf,OAAO;YACP,CAAC,YAAY,CAAC,MAAM,KAAK,KAAK;gBAC5B,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,WAAW,EAAE;gBACpC,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,CAC5B,CAAA;QACD,MAAM,iBAAiB,GAAG,IAAA,2BAAc,EACtC,OAAO,EAAE,MAAM,EACf,SAAS,IAAI,EAAE,EACf,OAAO,EAAE,EAAE,EACX,aAAa,EAAE,OAAO,KAAK,SAAS;YAClC,CAAC,CAAC,aAAa,EAAE,SAAS;YAC1B,CAAC,CAAC,SAAS,EACb,qBAAqB,CACtB,CAAA;QACD,IACE,yBAAyB;YACzB,OAAO;YACP,aAAa;YACb,CAAC,iBAAiB,EAClB,CAAC;YACD,MAAM,gBAAgB,GAAG,IAAA,gCAAmB,EAC1C,OAAO,EACP,SAAS,EACT,aAAa,EACb,qBAAqB,CACtB,CAAA;YAED,OAAO,gBAAgB,CAAA;QACzB,CAAC;IACH,CAAC,EAAE;QACD,yBAAyB;QACzB,OAAO;QACP,SAAS;QACT,aAAa;QACb,YAAY;KACb,CAAC,CAAA;IAEF,MAAM,UAAU,GACd,SAAS,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,gBAAgB,CAAA;IAElE,MAAM,iBAAiB,GACrB,CAAC,UAAU;QACT,CAAC,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,KAAK,UAAU,CAAC;YAC9D,OAAO,KAAK,UAAU;QACxB,CAAC,CAAC,SAAS,CAAC,KAAK,SAAS,CAAA;IAE9B,MAAM,gBAAgB,GAAG,IAAA,2BAAc,EACrC,OAAO,EAAE,MAAM,EACf,UAAU,IAAI,EAAE,EAChB,OAAO,EAAE,EAAE,CACZ,CAAA;IAED,MAAM,EAAE,aAAa,EAAE,eAAe,EAAE,mBAAmB,EAAE,GAC3D,IAAA,2BAAgB,EAAC,KAAK,EAAE,aAAa,CAAC,CAAA;IAExC,IAAA,iBAAS,EAAC,GAAG,EAAE;QACb,aAAa,CAAC,eAAe,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,CAAA;IACzD,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAA;IAEb,MAAM,sBAAsB,GAAG,aAAa;QAC1C,CAAC,CAAC,IAAA,qBAAQ,EAAC,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,QAAQ,CAAC;QACxD,CAAC,CAAC,GAAG,CAAA;IAEP,MAAM,aAAa,GAAG,IAAA,mBAAW,EAC/B,CAAC,UAAkB,EAAE,uBAAiC,EAAE,EAAE;QACxD,MAAM,gBAAgB,GACpB,uBAAuB,KAAK,SAAS;YACnC,CAAC,CAAC,uBAAuB;YACzB,CAAC,CAAC,eAAe,CAAA;QACrB,IAAI,gBAAgB,EAAE,CAAC;YACrB,MAAM,cAAc,GAAG,UAAU,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAA;YAC1D,gBAAgB,CAAC,cAAc,CAAC,CAAA;YAChC,MAAM,OAAO,GACX,cAAc,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,cAAc,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,CAAA;YACvE,SAAS,CAAC,GAAG,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAA;QAChD,CAAC;aAAM,CAAC;YACN,IAAI,OAAO,GAAG,EAAE,CAAA;YAChB,MAAM,YAAY,GAAG,UAAU;iBAC5B,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC;iBACvB,OAAO,CAAC,eAAe,EAAE,IAAI,CAAC;iBAC9B,OAAO,CAAC,cAAc,EAAE,IAAI,CAAC,CAAA;YAChC,MAAM,KAAK,GAAG,qBAAqB,CAAA;YACnC,IAAI,YAAY,KAAK,GAAG,IAAI,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;gBACvD,OAAO,GAAG,IAAI,CAAA;YAChB,CAAC;iBAAM,IAAI,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,YAAY,KAAK,EAAE,EAAE,CAAC;gBAC3D,OAAO,GAAG,YAAY,CAAA;YACxB,CAAC;YACD,MAAM,cAAc,GAAG,OAAO,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,CAAA;YACvE,SAAS,CAAC,OAAO,CAAC,CAAA;YAClB,gBAAgB,CAAC,GAAG,cAAc,EAAE,CAAC,CAAA;QACvC,CAAC;IACH,CAAC,EACD,CAAC,OAAO,EAAE,eAAe,CAAC,CAC3B,CAAA;IAED,MAAM,aAAa,GAAG,CAAC,MAAM,IAAI,CAAC,MAAM,GAAG,EAAE,CAAA;IAC7C,IAAI,OAAO,GAAG,KAAK,CAAA;IACnB,IAAI,aAAa,EAAE,CAAC;QAClB,OAAO,GAAG,iBAAiB,CAAA;IAC7B,CAAC;SAAM,IAAI,CAAC,UAAU,IAAI,wBAAwB,EAAE,CAAC;QACnD,OAAO,GAAG,gBAAgB,CAAA;IAC5B,CAAC;SAAM,IAAI,CAAC,UAAU,EAAE,CAAC;QACvB,OAAO,GAAG,SAAS,OAAO,EAAE,WAAW,UAAU,CAAA;IACnD,CAAC;IAED,OAAO,CACL,2DACG,QAAQ,CAAC;YACR,eAAe;YACf,kBAAkB;YAClB,SAAS,EAAE,UAAU;YACrB,YAAY;YACZ,iBAAiB;YACjB,gBAAgB;YAChB,MAAM;YACN,SAAS;YACT,aAAa;YACb,gBAAgB;YAChB,aAAa;YACb,KAAK;YACL,SAAS;YACT,QAAQ;YACR,OAAO;YACP,SAAS;YACT,aAAa;YACb,wBAAwB;YACxB,YAAY;YACZ,eAAe;YACf,sBAAsB;YACtB,OAAO;YACP,iBAAiB;YACjB,aAAa;YACb,OAAO;YACP,aAAa;YACb,mBAAmB,EACjB,aAAa,IAAI,mBAAmB,EAAE,IAAI;gBACxC,CAAC,CAAC,mBAAmB,EAAE,IAAI;gBAC3B,CAAC,CAAC,eAAe,CAAC,IAAI;SAC3B,CAAC,GACD,CACJ,CAAA;AACH,CAAC,CAAA;AAED,kBAAe,oBAAoB,CAAA","sourcesContent":["import {\n useCallback,\n useContext,\n useEffect,\n useMemo,\n useState,\n type Dispatch,\n type FC,\n type ReactNode,\n type SetStateAction\n} from 'react'\nimport {\n useRelayClient,\n useIsPassthrough,\n useSupportedMoonPayCurrencyCode,\n useFallbackState,\n useDisplayName\n} from '../../../../hooks/index.js'\nimport { zeroAddress } from 'viem'\nimport { type ChainVM, type RelayChain } from '@relayprotocol/relay-sdk'\nimport type {\n FiatCurrency,\n LinkedWallet,\n Token\n} from '../../../../types/index.js'\nimport { ProviderOptionsContext } from '../../../../providers/RelayKitProvider.js'\nimport {\n findSupportedWallet,\n isChainVmTypeSupported,\n isValidAddress\n} from '../../../../utils/address.js'\nimport useWalletAddress from '../../../../hooks/useWalletAddress.js'\nimport { useTokenPrice } from '@relayprotocol/relay-kit-hooks'\nimport { formatBN } from '../../../../utils/numbers.js'\nimport { UnsupportedDepositAddressChainIds } from '../../../../constants/depositAddresses.js'\n\nexport type ChildrenProps = {\n displayCurrency: boolean\n setDisplayCurrency: React.Dispatch<React.SetStateAction<boolean>>\n recipient?: string\n setRecipient: React.Dispatch<React.SetStateAction<string | undefined>>\n isRecipientLinked: boolean\n isValidRecipient: boolean\n amount: string\n setAmount: React.Dispatch<React.SetStateAction<string>>\n amountToToken: string\n setAmountToToken: React.Dispatch<React.SetStateAction<string>>\n setInputValue: (value: string, overrideDisplayCurrency?: boolean) => void\n fiatCurrency: FiatCurrency\n setFiatCurrency: React.Dispatch<React.SetStateAction<FiatCurrency>>\n token: Token\n fromToken: Token\n setToken: React.Dispatch<React.SetStateAction<Token>>\n toChain?: RelayChain\n fromChain?: RelayChain\n toDisplayName?: string\n toChainWalletVMSupported?: boolean\n amountToTokenFormatted?: string\n usdRate: number\n minAmountCurrency?: string\n ctaCopy: string\n notEnoughFiat: boolean\n isPassthrough: boolean\n moonPayCurrencyCode: string\n}\n\ntype OnrampWidgetRendererProps = {\n defaultWalletAddress?: string\n supportedWalletVMs: Omit<ChainVM, 'hypevm' | 'lvm' | 'xrpvm'>[]\n linkedWallets?: LinkedWallet[]\n multiWalletSupportEnabled?: boolean\n moonPayApiKey: string\n token?: Token\n setToken?: (token: Token) => void\n children: (props: ChildrenProps) => ReactNode\n}\n\nconst OnrampWidgetRenderer: FC<OnrampWidgetRendererProps> = ({\n defaultWalletAddress,\n linkedWallets,\n supportedWalletVMs,\n multiWalletSupportEnabled,\n moonPayApiKey,\n token: _token,\n setToken: _setToken,\n children\n}) => {\n const client = useRelayClient()\n const providerOptionsContext = useContext(ProviderOptionsContext)\n const connectorKeyOverrides = providerOptionsContext.vmConnectorKeyOverrides\n const [token, setToken] = useFallbackState(\n _token && _setToken\n ? _token\n : {\n address: zeroAddress,\n chainId: 8453,\n name: 'ETH',\n symbol: 'ETH',\n decimals: 18,\n logoURI: 'https://assets.relay.link/icons/currencies/eth.png'\n },\n _token && _setToken\n ? [_token, _setToken as Dispatch<SetStateAction<Token>>]\n : undefined\n )\n useEffect(() => {\n if (\n _token &&\n _setToken &&\n UnsupportedDepositAddressChainIds.includes(token.chainId)\n ) {\n setToken({\n address: zeroAddress,\n chainId: 8453,\n name: 'ETH',\n symbol: 'ETH',\n decimals: 18,\n logoURI: 'https://assets.relay.link/icons/currencies/eth.png'\n })\n }\n }, [_token])\n\n const [displayCurrency, setDisplayCurrency] = useState(false)\n const { data: usdTokenPriceResponse } = useTokenPrice(\n client?.baseApiUrl,\n {\n address: token.address,\n chainId: token.chainId,\n referrer: client?.source\n },\n {\n refetchInterval: 60000 * 5, //5 minutes\n refetchOnWindowFocus: false\n }\n )\n const usdRate = usdTokenPriceResponse?.price ?? 0\n const minAmountCurrency = formatBN(20 / usdRate, 5, token.decimals, false)\n\n const toChain = useMemo(\n () => client?.chains.find((chain) => chain.id === token.chainId),\n [token, client?.chains]\n )\n const toChainWalletVMSupported =\n isChainVmTypeSupported(toChain?.vmType, supportedWalletVMs)\n\n const moonPayCurrency = useSupportedMoonPayCurrencyCode(\n [\n 'usdc_base',\n 'usdc_polygon',\n 'usdc',\n 'eth',\n 'eth_arbitrum',\n 'eth_optimism'\n ],\n moonPayApiKey,\n token\n )\n\n const fromToken: Token = {\n chainId: +moonPayCurrency.chainId,\n address: moonPayCurrency.contractAddress,\n symbol: moonPayCurrency.code.includes('eth') ? 'ETH' : 'USDC',\n name: moonPayCurrency.code.includes('eth') ? 'ETH' : 'USDC',\n logoURI: moonPayCurrency.code.includes('eth')\n ? 'https://assets.relay.link/icons/1/light.png'\n : 'https://coin-images.coingecko.com/coins/images/6319/large/usdc.png?1696506694',\n decimals: moonPayCurrency.code.includes('eth') ? 18 : 6\n }\n\n const fromChain = useMemo(\n () => client?.chains.find((chain) => chain.id === +moonPayCurrency.chainId),\n [fromToken, client?.chains, moonPayCurrency]\n )\n\n const [amount, setAmount] = useState('20')\n const [amountToToken, setAmountToToken] = useState('')\n const [recipient, setRecipient] = useState<string | undefined>(\n defaultWalletAddress\n )\n const { displayName: toDisplayName } = useDisplayName(\n recipient,\n toChain?.vmType,\n toChain?.id\n )\n\n const [fiatCurrency, setFiatCurrency] = useState<FiatCurrency>({\n name: 'US Dollar',\n code: 'usd',\n minAmount: 20,\n icon: 'https://static.moonpay.com/widget/currencies/usd.svg'\n })\n\n const address = useWalletAddress(undefined, linkedWallets)\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 _isValidRecipient = isValidAddress(\n toChain?.vmType,\n recipient ?? '',\n toChain?.id,\n _linkedWallet?.address === recipient\n ? _linkedWallet?.connector\n : undefined,\n connectorKeyOverrides\n )\n if (\n multiWalletSupportEnabled &&\n toChain &&\n linkedWallets &&\n !_isValidRecipient\n ) {\n const supportedAddress = findSupportedWallet(\n toChain,\n recipient,\n linkedWallets,\n connectorKeyOverrides\n )\n\n return supportedAddress\n }\n }, [\n multiWalletSupportEnabled,\n toChain,\n recipient,\n linkedWallets,\n setRecipient\n ])\n\n const _recipient =\n recipient && recipient.length > 0 ? recipient : defaultRecipient\n\n const isRecipientLinked =\n (_recipient\n ? linkedWallets?.find((wallet) => wallet.address === _recipient) ||\n address === _recipient\n : undefined) !== undefined\n\n const isValidRecipient = isValidAddress(\n toChain?.vmType,\n _recipient ?? '',\n toChain?.id\n )\n\n const { isPassthrough, moonPayCurrency: passThroughCurrency } =\n useIsPassthrough(token, moonPayApiKey)\n\n useEffect(() => {\n setInputValue(displayCurrency ? amountToToken : amount)\n }, [usdRate])\n\n const amountToTokenFormatted = amountToToken\n ? formatBN(parseFloat(amountToToken), 5, token.decimals)\n : '-'\n\n const setInputValue = useCallback(\n (inputValue: string, overrideDisplayCurrency?: boolean) => {\n const _displayCurrency =\n overrideDisplayCurrency !== undefined\n ? overrideDisplayCurrency\n : displayCurrency\n if (_displayCurrency) {\n const _amountToToken = inputValue.replace(/[^0-9.]+/g, '')\n setAmountToToken(_amountToToken)\n const _amount =\n _amountToToken && +_amountToToken > 0 ? +_amountToToken * usdRate : 0\n setAmount(`${parseFloat(_amount.toFixed(2))}`)\n } else {\n let _amount = ''\n const numericValue = inputValue\n .replace(/[^0-9.]/g, '')\n .replace(/(\\..*?)(\\..*)/, '$1')\n .replace(/(\\.\\d{2})\\d+/, '$1')\n const regex = /^[0-9]+(\\.[0-9]*)?$/\n if (numericValue === '.' || numericValue.includes(',')) {\n _amount = '0.'\n } else if (regex.test(numericValue) || numericValue === '') {\n _amount = numericValue\n }\n const _amountToToken = _amount && +_amount > 0 ? +_amount / usdRate : 0\n setAmount(_amount)\n setAmountToToken(`${_amountToToken}`)\n }\n },\n [usdRate, displayCurrency]\n )\n\n const notEnoughFiat = !amount || +amount < 20\n let ctaCopy = 'Buy'\n if (notEnoughFiat) {\n ctaCopy = 'Enter an amount'\n } else if (!_recipient && toChainWalletVMSupported) {\n ctaCopy = `Connect Wallet`\n } else if (!_recipient) {\n ctaCopy = `Enter ${toChain?.displayName} address`\n }\n\n return (\n <>\n {children({\n displayCurrency,\n setDisplayCurrency,\n recipient: _recipient,\n setRecipient,\n isRecipientLinked,\n isValidRecipient,\n amount,\n setAmount,\n amountToToken,\n setAmountToToken,\n setInputValue,\n token,\n fromToken,\n setToken,\n toChain,\n fromChain,\n toDisplayName,\n toChainWalletVMSupported,\n fiatCurrency,\n setFiatCurrency,\n amountToTokenFormatted,\n usdRate,\n minAmountCurrency,\n notEnoughFiat,\n ctaCopy,\n isPassthrough,\n moonPayCurrencyCode:\n isPassthrough && passThroughCurrency?.code\n ? passThroughCurrency?.code\n : moonPayCurrency.code\n })}\n </>\n )\n}\n\nexport default OnrampWidgetRenderer\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../src/components/widgets/OnrampWidget/widget/index.tsx"],"names":[],"mappings":";;;;AACA,gGAA4D;AAC5D,2DAAsE;AACtE,4FAAwD;AACxD,iCAAoE;AACpE,sEAAgE;AAChE,uFAAmF;AACnF,mFAA+E;AAC/E,+EAA2E;AAC3E,iFAA6E;AAC7E,8GAA0E;AAC1E,+DAA4D;AAC5D,4FAAqF;AAGrF,mFAA4E;AAC5E,iFAA0E;AAC1E,iCAAkC;AAClC,6DAAsD;AACtD,6DAAuD;AACvD,6DAAkE;AAClE,mFAGkD;AAwClD,MAAM,YAAY,GAA0B,CAAC,EAC3C,oBAAoB,EACpB,aAAa,EACb,8BAA8B,EAC9B,aAAa,EACb,yBAAyB,EACzB,kBAAkB,EAClB,cAAc,EACd,gBAAgB,EAChB,KAAK,EACL,QAAQ,EACR,+BAA+B,EAC/B,aAAa,EACb,eAAe,EACf,eAAe,EACf,kBAAkB,EAClB,eAAe,EAAE,gBAAgB,EACjC,SAAS,EACV,EAAE,EAAE;IACH,MAAM,eAAe,GAAG,IAAA,mBAAW,EACjC,CAAC,SAAiB,EAAE,IAAU,EAAE,EAAE;QAChC,IAAI,CAAC;YACH,gBAAgB,EAAE,CAAC,SAAS,EAAE,IAAI,CAAC,CAAA;QACrC,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO,CAAC,KAAK,CAAC,0BAA0B,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,CAAA;QAC/D,CAAC;IACH,CAAC,EACD,CAAC,gBAAgB,CAAC,CACnB,CAAA;IACD,MAAM,CAAC,gBAAgB,EAAE,mBAAmB,CAAC,GAAG,IAAA,gBAAQ,EAAC,KAAK,CAAC,CAAA;IAC/D,MAAM,CAAC,eAAe,EAAE,kBAAkB,CAAC,GAAG,IAAA,gBAAQ,EAAC,KAAK,CAAC,CAAA;IAC7D,MAAM,EAAE,WAAW,EAAE,GAAG,IAAA,kBAAU,GAAE,CAAA;IACpC,MAAM,sBAAsB,GAAG,IAAA,kBAAU,EAAC,4CAAsB,CAAC,CAAA;IACjE,MAAM,MAAM,GAAG,IAAA,oCAAc,GAAE,CAAA;IAC/B,MAAM,qBAAqB,GAAG,sBAAsB,CAAC,uBAAuB,CAAA;IAE5E,OAAO,CACL,uBAAC,iCAAoB,IACnB,oBAAoB,EAAE,oBAAoB,EAC1C,kBAAkB,EAAE,kBAAkB,EACtC,aAAa,EAAE,aAAa,EAC5B,yBAAyB,EAAE,yBAAyB,EACpD,aAAa,EAAE,aAAa,EAC5B,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,QAAQ,YAEjB,CAAC,EACA,eAAe,EACf,kBAAkB,EAClB,SAAS,EACT,YAAY,EACZ,iBAAiB,EACjB,gBAAgB,EAChB,MAAM,EACN,aAAa,EACb,aAAa,EACb,sBAAsB,EACtB,KAAK,EACL,SAAS,EACT,QAAQ,EACR,OAAO,EACP,SAAS,EACT,aAAa,EACb,wBAAwB,EACxB,YAAY,EACZ,eAAe,EACf,iBAAiB,EACjB,aAAa,EACb,OAAO,EACP,mBAAmB,EACnB,aAAa,EACb,OAAO,EACR,EAAE,EAAE;YAEH,IAAA,iBAAS,EAAC,GAAG,EAAE;gBACb,IACE,yBAAyB;oBACzB,SAAS;oBACT,SAAS;oBACT,aAAa;oBACb,CAAC,gBAAgB,EACjB,CAAC;oBACD,MAAM,gBAAgB,GAAG,IAAA,gCAAmB,EAC1C,SAAS,EACT,SAAS,EACT,aAAa,EACb,qBAAqB,CACtB,CAAA;oBACD,IAAI,gBAAgB,EAAE,CAAC;wBACrB,kBAAkB,EAAE,CAAC,gBAAgB,CAAC,CAAA;oBACxC,CAAC;gBACH,CAAC;gBAED,IACE,yBAAyB;oBACzB,OAAO;oBACP,SAAS;oBACT,aAAa;oBACb,CAAC,gBAAgB,EACjB,CAAC;oBACD,YAAY,CAAC,SAAS,CAAC,CAAA;gBACzB,CAAC;YACH,CAAC,EAAE;gBACD,yBAAyB;gBACzB,SAAS,EAAE,EAAE;gBACb,OAAO,EAAE,EAAE;gBACX,aAAa;gBACb,kBAAkB;gBAClB,gBAAgB;gBAChB,qBAAqB;aACtB,CAAC,CAAA;YAEF,MAAM,eAAe,GACnB,MAAM,KAAK,EAAE;gBACX,CAAC,CAAC,EAAE;gBACJ,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC;oBACpB,CAAC,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE;wBAC/B,KAAK,EAAE,UAAU;wBACjB,QAAQ,EAAE,KAAK;wBACf,eAAe,EAAE,cAAc;wBAC/B,qBAAqB,EAAE,CAAC;wBACxB,qBAAqB,EAAE,CAAC;qBACzB,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,GAAG,GAAG;oBAC1B,CAAC,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE;wBAC/B,KAAK,EAAE,UAAU;wBACjB,QAAQ,EAAE,KAAK;wBACf,eAAe,EAAE,cAAc;wBAC/B,qBAAqB,EAAE,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC;4BAC1C,CAAC,CAAC,CAAC;4BACH,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC;gCAC5C,CAAC,CAAC,CAAC;gCACH,CAAC,CAAC,CAAC;wBACP,qBAAqB,EAAE,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;wBACnD,wBAAwB,EAAE,CAAC;wBAC3B,wBAAwB,EAAE,MAAM,CAAC,MAAM;qBACxC,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAA;YAE1B,OAAO,CACL,iCACE,SAAS,EAAC,sEAAsE,aAEhF,uBAAC,eAAI,IACH,SAAS,EAAC,QAAQ,EAClB,SAAS,EAAC,8CAA8C,YAExD,wBAAC,eAAI,IACH,SAAS,EAAC,QAAQ,EAClB,SAAS,EAAC,8OAA8O,aAExP,uBAAC,eAAI,IACH,KAAK,EAAC,WAAW,EACjB,KAAK,EAAC,QAAQ,EACd,SAAS,EAAC,mBAAmB,gCAGxB,EACP,uBAAC,wBAAW,IACV,KAAK,EACH,eAAe;wCACb,CAAC,CAAC,aAAa,KAAK,EAAE;4CACpB,CAAC,CAAC,GAAG,aAAa,IAAI,KAAK,CAAC,MAAM,EAAE;4CACpC,CAAC,CAAC,EAAE;wCACN,CAAC,CAAC,eAAe,EAErB,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE;oCAEhB,CAAC,EACD,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE;wCACd,MAAM,KAAK,GAAG,CAAC,CAAC,MAAa,CAAA;wCAE7B,aAAa,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;wCAC1B,IAAI,eAAe,EAAE,CAAC;4CACpB,UAAU,CAAC,GAAG,EAAE;gDACd,MAAM,YAAY,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,CAAA;gDACjD,MAAM,kBAAkB,GACtB,YAAY,KAAK,IAAI;oDACnB,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM;oDAC9B,CAAC,CAAC,CAAC,CAAA;gDACP,KAAK,CAAC,iBAAiB,CACrB,kBAAkB,EAClB,kBAAkB,CACnB,CAAA;4CACH,CAAC,EAAE,CAAC,CAAC,CAAA;wCACP,CAAC;oCACH,CAAC,EACD,SAAS,EAAE,CAAC,CAAC,EAAE,EAAE;wCACf,MAAM,KAAK,GAAG,CAAC,CAAC,MAA0B,CAAA;wCAC1C,MAAM,cAAc,GAAG,KAAK,CAAC,cAAc,CAAA;wCAG3C,IACE,CAAC,CAAC,GAAG,KAAK,GAAG;4CACb,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,GAAG,CAAC,EAC3C,CAAC;4CACD,CAAC,CAAC,cAAc,EAAE,CAAA;4CAClB,OAAM;wCACR,CAAC;wCAED,IAAI,CAAC,CAAC,GAAG,KAAK,WAAW,IAAI,cAAc,KAAK,IAAI,EAAE,CAAC;4CACrD,MAAM,iBAAiB,GAAG,KAAK,CAAC,KAAK,CAAC,SAAS,CAC7C,CAAC,EACD,cAAc,CACf,CAAA;4CACD,MAAM,gBAAgB,GAAG,iBAAiB,CAAC,MAAM,CAC/C,cAAc,GAAG,CAAC,CACnB,CAAA;4CACD,IAAI,gBAAgB,KAAK,GAAG,EAAE,CAAC;gDAC7B,CAAC,CAAC,cAAc,EAAE,CAAA;4CACpB,CAAC;wCACH,CAAC;wCACD,IAAI,CAAC,CAAC,GAAG,KAAK,YAAY,IAAI,cAAc,KAAK,IAAI,EAAE,CAAC;4CACtD,MAAM,gBAAgB,GAAG,KAAK,CAAC,KAAK,CAAC,SAAS,CAC5C,CAAC,EACD,cAAc,GAAG,CAAC,CACnB,CAAA;4CACD,MAAM,eAAe,GACnB,gBAAgB,CAAC,MAAM,CAAC,cAAc,CAAC,CAAA;4CACzC,IAAI,eAAe,KAAK,GAAG,EAAE,CAAC;gDAC5B,CAAC,CAAC,cAAc,EAAE,CAAA;4CACpB,CAAC;wCACH,CAAC;oCACH,CAAC,EACD,WAAW,EAAE,CAAC,CAAC,EAAE,EAAE;wCACjB,MAAM,KAAK,GAAG,CAAC,CAAC,MAA0B,CAAA;wCAC1C,KAAK,CAAC,KAAK,CAAC,UAAU,GAAG,aAAa,CAAA;oCACxC,CAAC,EACD,SAAS,EAAE,CAAC,CAAC,EAAE,EAAE;wCACf,MAAM,KAAK,GAAG,CAAC,CAAC,MAA0B,CAAA;wCAC1C,MAAM,cAAc,GAAG,KAAK,CAAC,cAAc,CAAA;wCAC3C,IAAI,cAAc,KAAK,IAAI,EAAE,CAAC;4CAC5B,MAAM,gBAAgB,GAAG,KAAK,CAAC,KAAK,CAAC,SAAS,CAC5C,CAAC,EACD,cAAc,GAAG,CAAC,CACnB,CAAA;4CACD,MAAM,eAAe,GACnB,gBAAgB,CAAC,MAAM,CAAC,cAAc,CAAC,CAAA;4CACzC,MAAM,iBAAiB,GAAG,KAAK,CAAC,KAAK,CAAC,SAAS,CAC7C,CAAC,EACD,cAAc,CACf,CAAA;4CACD,MAAM,gBAAgB,GAAG,iBAAiB,CAAC,MAAM,CAC/C,cAAc,GAAG,CAAC,CACnB,CAAA;4CACD,MAAM,qBAAqB,GAAG,WAAW,CAAA;4CACzC,MAAM,UAAU,GAAG,UAAU,CAAA;4CAC7B,IACE,eAAe,KAAK,GAAG;gDACvB,UAAU,CAAC,IAAI,CAAC,eAAe,CAAC;gDAChC,qBAAqB,CAAC,IAAI,CAAC,gBAAgB,CAAC,EAC5C,CAAC;gDACD,CAAC,CAAC,cAAc,EAAE,CAAA;gDAClB,CAAC,CAAC,eAAe,EAAE,CAAA;gDACnB,KAAK,CAAC,iBAAiB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;4CAC/B,CAAC;wCACH,CAAC;wCACD,KAAK,CAAC,KAAK,CAAC,UAAU,GAAG,SAAS,CAAA;oCACpC,CAAC,EACD,SAAS,EAAC,wCAAwC,EAClD,UAAU,EAAE;wCACV,UAAU,EAAE,KAAK;wCACjB,QAAQ,EAAE,EAAE;wCACZ,UAAU,EAAE,MAAM;wCAClB,SAAS,EAAE,QAAQ;wCACnB,UAAU,EACR,MAAM,KAAK,EAAE,IAAI,aAAa,KAAK,EAAE;4CACnC,CAAC,CAAC,OAAO;4CACT,CAAC,CAAC,SAAS;wCACf,UAAU,EAAE,KAAK;qCAClB,EACD,kBAAkB,EAAC,yBAAyB,GAC5C,EACD,aAAa,CAAC,CAAC,CAAC,CACf,wBAAC,eAAI,IAAC,KAAK,EAAC,KAAK,EAAC,SAAS,EAAC,mCAAmC,kCAC3C,GAAG,EACpB,eAAe,IAAI,iBAAiB;4CACnC,CAAC,CAAC,GAAG,iBAAiB,IAAI,KAAK,CAAC,MAAM,EAAE;4CACxC,CAAC,CAAC,KAAK,IACJ,CACR,CAAC,CAAC,CAAC,SAAS,EACb,oCACE,SAAS,EAAC,uHAAuH,EACjI,OAAO,EAAE,GAAG,EAAE;wCACZ,MAAM,gBAAgB,GAAG,CAAC,eAAe,CAAA;wCACzC,kBAAkB,CAAC,gBAAgB,CAAC,CAAA;wCACpC,IAAI,gBAAgB,EAAE,CAAC;4CACrB,IAAI,cAAc,GAAG,EAAE,GAAG,OAAO,CAAA;4CACjC,IAAI,CAAC,aAAa,GAAG,cAAc,EAAE,CAAC;gDACpC,cAAc,GAAG,CAAC,aAAa,CAAA;4CACjC,CAAC;4CACD,aAAa,CACX,IAAA,qBAAQ,EAAC,cAAc,EAAE,CAAC,EAAE,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,EAClD,gBAAgB,CACjB,CAAA;wCACH,CAAC;oCACH,CAAC,aAED,uBAAC,eAAI,IAAC,KAAK,EAAC,OAAO,EAAC,KAAK,EAAC,QAAQ,YAC/B,eAAe;gDACd,CAAC,CAAC,eAAe;gDACjB,CAAC,CAAC,GAAG,sBAAsB,IAAI,KAAK,CAAC,MAAM,EAAE,GAC1C,EACP,wBAAC,eAAI,IACH,SAAS,EAAC,8CAA8C,aAExD,uBAAC,mCAAe,IACd,SAAS,EAAC,gBAAgB,EAC1B,IAAI,EAAE,6BAAa,GACnB,EACF,uBAAC,mCAAe,IACd,SAAS,EAAC,gBAAgB,EAC1B,IAAI,EAAE,iCAAe,GACrB,IACG,IACA,EACT,uBAAC,0BAAa,IACZ,OAAO,EAAE,SAAS,EAClB,cAAc,EAAE,gBAAgB,EAChC,KAAK,EAAE,KAAK,EACZ,eAAe,EAAE,eAAe,EAChC,0BAA0B,EAAE,KAAK,EACjC,kBAAkB,EAAE,EAAE,EACtB,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE;wCAClB,QAAQ,CAAC,KAAK,CAAC,CAAA;wCACf,aAAa,EAAE,CAAC,KAAK,CAAC,CAAA;oCACxB,CAAC,EACD,OAAO,EAAC,IAAI,EACZ,OAAO,EACL,gCACE,SAAS,EAAC,2CAA2C,iBACzC,4BAA4B,YAExC,uBAAC,8BAAY,IAAC,KAAK,EAAE,KAAK,GAAI,GAC1B,GAER,EACF,wBAAC,eAAI,IAAC,SAAS,EAAC,2BAA2B,aACzC,uBAAC,iBAAM,IACL,KAAK,EAAC,OAAO,EACb,OAAO,EAAC,MAAM,EACd,IAAI,EAAC,MAAM,EACX,SAAS,EAAC,iEAAiE,EAC3E,OAAO,EAAE,GAAG,EAAE;gDACZ,kBAAkB,CAAC,KAAK,CAAC,CAAA;gDACzB,aAAa,CAAC,KAAK,EAAE,KAAK,CAAC,CAAA;4CAC7B,CAAC,YAED,uBAAC,eAAI,IAAC,KAAK,EAAC,WAAW,qBAAY,GAC5B,EACT,uBAAC,iBAAM,IACL,KAAK,EAAC,OAAO,EACb,OAAO,EAAC,MAAM,EACd,IAAI,EAAC,MAAM,EACX,SAAS,EAAC,iEAAiE,EAC3E,OAAO,EAAE,GAAG,EAAE;gDACZ,kBAAkB,CAAC,KAAK,CAAC,CAAA;gDACzB,aAAa,CAAC,KAAK,EAAE,KAAK,CAAC,CAAA;4CAC7B,CAAC,YAED,uBAAC,eAAI,IAAC,KAAK,EAAC,WAAW,qBAAY,GAC5B,EACT,uBAAC,iBAAM,IACL,KAAK,EAAC,OAAO,EACb,OAAO,EAAC,MAAM,EACd,IAAI,EAAC,MAAM,EACX,SAAS,EAAC,iEAAiE,EAC3E,OAAO,EAAE,GAAG,EAAE;gDACZ,kBAAkB,CAAC,KAAK,CAAC,CAAA;gDACzB,aAAa,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;4CAC9B,CAAC,YAED,uBAAC,eAAI,IAAC,KAAK,EAAC,WAAW,uBAAc,GAC9B,IACJ,IACF,GACF,EACP,wBAAC,eAAI,IACH,SAAS,EAAC,QAAQ,EAClB,SAAS,EAAC,6MAA6M,aAEvN,wBAAC,eAAI,IAAC,OAAO,EAAC,SAAS,EAAC,KAAK,EAAC,QAAQ,EAAC,SAAS,EAAC,YAAY,aAC3D,uBAAC,eAAI,IAAC,KAAK,EAAC,QAAQ,EAAC,KAAK,EAAC,WAAW,0BAE/B,EACN,yBAAyB,KAAK,IAAI;wCACnC,wBAAwB,CAAC,CAAC,CAAC,CACzB,uBAAC,4CAAmB,IAClB,OAAO,EAAC,aAAa,EACrB,qBAAqB,EAAE,SAAS,EAChC,QAAQ,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC,EAClD,KAAK,EAAE,OAAO,EACd,eAAe,EAAE,GAAG,EAAE;4CACpB,IACE,CAAC,CAAC,aAAa,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,CAAC;gDAC9C,wBAAwB,EACxB,CAAC;gDACD,eAAe,EAAE,EAAE,CAAA;4CACrB,CAAC;iDAAM,CAAC;gDACN,eAAe,EAAE,CAAC;oDAChB,KAAK,EAAE,OAAO;oDACd,SAAS,EAAE,IAAI;iDAChB,CAAC,EAAE,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;oDAClB,kBAAkB,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;gDACtC,CAAC,CAAC,CAAA;4CACJ,CAAC;wCACH,CAAC,EACD,mBAAmB,EAAE,mBAAmB,EACxC,OAAO,EAAE,aAAc,EACvB,eAAe,EAAE,eAAe,EAChC,+BAA+B,EAC7B,+BAA+B,EAEjC,MAAM,EAAC,6BAA6B,GACpC,CACH,CAAC,CAAC,CAAC,IAAI,EACP,CAAC,yBAAyB,IAAI,CAAC,wBAAwB,CAAC,CAAC,CAAC,CACzD,wBAAC,iBAAM,IACL,KAAK,EACH,gBAAgB,IAAI,CAAC,iBAAiB;4CACpC,CAAC,CAAC,SAAS;4CACX,CAAC,CAAC,WAAW,EAEjB,OAAO,EAAC,MAAM,EACd,IAAI,EAAC,MAAM,EACX,SAAS,EAAC,qDAAqD,EAC/D,OAAO,EAAE,GAAG,EAAE;4CACZ,mBAAmB,CAAC,IAAI,CAAC,CAAA;4CACzB,eAAe,EAAE,CAAC,sBAAU,CAAC,0BAA0B,CAAC,CAAA;wCAC1D,CAAC,aAEA,gBAAgB,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,CACxC,uBAAC,cAAG,IAAC,SAAS,EAAC,gDAAgD,YAC7D,uBAAC,mCAAe,IACd,IAAI,EAAE,yBAAW,EACjB,KAAK,EAAE,EAAE,EACT,MAAM,EAAE,EAAE,GACV,GACE,CACP,CAAC,CAAC,CAAC,IAAI,EACR,uBAAC,eAAI,IACH,KAAK,EAAC,WAAW,EACjB,SAAS,EACP,gBAAgB,IAAI,CAAC,iBAAiB;oDACpC,CAAC,CAAC,gDAAgD;oDAClD,CAAC,CAAC,qDAAqD,YAG1D,CAAC,gBAAgB,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,aAAa,GAC/C,IACA,CACV,CAAC,CAAC,CAAC,IAAI,IACH,EACP,wBAAC,eAAI,IAAC,OAAO,EAAC,SAAS,EAAC,KAAK,EAAC,QAAQ,aACpC,uBAAC,eAAI,IAAC,KAAK,EAAC,QAAQ,EAAC,KAAK,EAAC,WAAW,4BAE/B,EACP,wBAAC,eAAI,IACH,SAAS,EAAC,sGAAsG,aAEhH,uBAAC,mCAAe,IAAC,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,2BAAY,GAAI,EAC7D,uBAAC,eAAI,IAAC,KAAK,EAAC,WAAW,qBAAY,IAC9B,IAOF,IACF,EACP,uBAAC,iBAAM,IACL,GAAG,EAAE,IAAI,EACT,SAAS,EAAC,mCAAmC,EAC7C,QAAQ,EAAE,aAAa,EACvB,OAAO,EAAE,GAAG,EAAE;4BACZ,MAAM,CAAC,QAAQ,CAAC,CAAA;4BAChB,IAAI,CAAC,SAAS,IAAI,wBAAwB,EAAE,CAAC;gCAC3C,IAAI,CAAC,aAAa,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oCACjD,eAAe,EAAE,EAAE,CAAA;gCACrB,CAAC;qCAAM,CAAC;oCACN,eAAe,EAAE,CAAC;wCAChB,KAAK,EAAE,OAAO;wCACd,SAAS,EAAE,IAAI;qCAChB,CAAC,EAAE,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;wCAClB,kBAAkB,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;oCACtC,CAAC,CAAC,CAAA;gCACJ,CAAC;4BACH,CAAC;iCAAM,IAAI,CAAC,SAAS,EAAE,CAAC;gCACtB,mBAAmB,CAAC,IAAI,CAAC,CAAA;4BAC3B,CAAC;iCAAM,CAAC;gCACN,kBAAkB,CAAC,IAAI,CAAC,CAAA;4BAC1B,CAAC;wBACH,CAAC,YAEA,OAAO,GACD,EACT,uBAAC,0CAAkB,IACjB,IAAI,EAAE,gBAAgB,EACtB,OAAO,EAAE,KAAK,EACd,SAAS,EAAE,SAAS,EACpB,OAAO,EAAE,OAAO,EAChB,WAAW,EACT,CAAC,aAAa,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,WAAW;4BACxD,CAAC,CAAC,IAAI;4BACN,CAAC,CAAC,KAAK,EAEX,aAAa,EAAE,aAAa,IAAI,EAAE,EAClC,yBAAyB,EAAE,yBAAyB,EACpD,eAAe,EAAE,eAAe,EAChC,YAAY,EAAE,CAAC,IAAI,EAAE,EAAE;4BACrB,mBAAmB,CAAC,IAAI,CAAC,CAAA;wBAC3B,CAAC,EACD,WAAW,EAAE,CAAC,OAAO,EAAE,EAAE;4BACvB,YAAY,CAAC,OAAO,CAAC,CAAA;wBACvB,CAAC,EACD,OAAO,EAAE,GAAG,EAAE;4BACZ,YAAY,CAAC,SAAS,CAAC,CAAA;wBACzB,CAAC,GACD,EACF,uBAAC,4BAAW,IACV,IAAI,EAAE,eAAe,EACrB,YAAY,EAAE,kBAAkB,EAChC,eAAe,EAAE,eAAe,EAChC,8BAA8B,EAAE,8BAA8B,EAC9D,SAAS,EAAE,SAAS,EACpB,OAAO,EAAE,KAAK,EACd,SAAS,EAAE,SAAS,EACpB,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,MAAM,EACd,eAAe,EAAE,eAAe,EAChC,sBAAsB,EAAE,sBAAsB,EAC9C,YAAY,EAAE,YAAY,EAC1B,SAAS,EAAE,SAAS,EACpB,SAAS,EAAE,SAAS,EACpB,mBAAmB,EAAE,mBAAmB,EACxC,aAAa,EAAE,aAAa,EAC5B,OAAO,EAAE,OAAO,EAChB,cAAc,EAAE,cAAc,EAC9B,gBAAgB,EAAE,gBAAgB,EAClC,aAAa,EAAE,aAAa,GAC5B,IACE,CACP,CAAA;QACH,CAAC,GACoB,CACxB,CAAA;AACH,CAAC,CAAA;AAED,kBAAe,YAAY,CAAA","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"]}
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' | 'xrpvm'>[]\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"]}
@@ -478,7 +478,6 @@ const SwapWidget = ({ fromToken, setFromToken, toToken, setToToken, defaultToAdd
478
478
  inputAmountUsd > 0 &&
479
479
  fromTokenPriceData?.price &&
480
480
  fromTokenPriceData.price > 0 ? ((0, numbers_js_1.formatDollar)(inputAmountUsd)) : ('$0.00') }), (0, jsx_runtime_1.jsx)(index_js_1.Button, { "aria-label": "Switch Input Mode", size: "none", color: "ghost", className: "relay:self-center relay:justify-center relay:w-[20px] relay:h-[20px] relay:rounded-[100px] relay:p-[4px]", style: { color: 'var(--relay-colors-gray9)', backgroundColor: 'var(--relay-colors-gray3)' }, onClick: toggleInputMode, children: (0, jsx_runtime_1.jsx)(index_js_3.SwitchIcon, { width: 16, height: 10 }) })] }), (0, jsx_runtime_1.jsxs)(index_js_1.Flex, { align: "center", className: "relay:gap-3 relay:ml-auto relay:h-[23px]", children: [fromToken ? ((0, jsx_runtime_1.jsx)(BalanceDisplay_js_1.BalanceDisplay, { isLoading: isLoadingFromBalance, balance: fromBalance, decimals: fromToken?.decimals, symbol: fromToken?.symbol, hasInsufficientBalance: hasInsufficientBalance, displaySymbol: false, isConnected: !(0, relay_sdk_1.isDeadAddress)(address) &&
481
- address !== relay_sdk_1.tronDeadAddress &&
482
481
  address !== undefined, pending: fromBalancePending })) : ((0, jsx_runtime_1.jsx)(index_js_1.Flex, { className: "relay:h-[18px]" })), fromBalance &&
483
482
  (fromChain?.vmType === 'evm' ||
484
483
  fromChain?.vmType === 'svm') ? ((0, jsx_runtime_1.jsx)(index_js_1.Box, { className: "relay:hidden relay:sm:block", children: (0, jsx_runtime_1.jsx)(PercentageButtons_js_1.PercentageButtons, { balance: fromBalance, onPercentageClick: handleMaxAmountClicked, getFeeBufferAmount: (vmType, chainId, balance, publicClient) => (0, nativeMaxAmount_js_1.getFeeBufferAmount)(vmType, chainId, balance, publicClient, relayClient?.baseApiUrl), fromChain: fromChain, publicClient: publicClient, isFromNative: isFromNative, variant: "desktop" }) })) : null] })] }), fromBalance &&
@@ -611,7 +610,6 @@ const SwapWidget = ({ fromToken, setFromToken, toToken, setToToken, defaultToAdd
611
610
  outputAmountUsd > 0 &&
612
611
  toTokenPriceData?.price &&
613
612
  toTokenPriceData.price > 0 ? ((0, numbers_js_1.formatDollar)(outputAmountUsd)) : ('$0.00') }), (0, jsx_runtime_1.jsx)(PriceImpact_js_1.PriceImpact, { toToken: toToken, isFetchingQuote: isFetchingQuote, feeBreakdown: feeBreakdown, quote: quote })] }), (0, jsx_runtime_1.jsx)(index_js_1.Flex, { className: "relay:ml-auto", children: toToken ? ((0, jsx_runtime_1.jsx)(BalanceDisplay_js_1.BalanceDisplay, { isLoading: isLoadingToBalance, balance: toBalance, decimals: toToken?.decimals, symbol: toToken?.symbol, displaySymbol: false, isConnected: !(0, relay_sdk_1.isDeadAddress)(address) &&
614
- address !== relay_sdk_1.tronDeadAddress &&
615
613
  address !== undefined, pending: toBalancePending })) : ((0, jsx_runtime_1.jsx)(index_js_1.Flex, { className: "relay:h-[18px]" })) })] })] }), (0, jsx_runtime_1.jsx)(FeeBreakdown_js_1.default, { feeBreakdown: feeBreakdown, isFetchingQuote: isFetchingQuote, toToken: toToken, fromToken: fromToken, quote: quote, timeEstimate: timeEstimate, isAutoSlippage: isAutoSlippage, slippageInputBps: slippageTolerance, toChain: toChain, isSingleChainLocked: isSingleChainLocked, fromChainWalletVMSupported: fromChainWalletVMSupported, error: error, onOpenSlippageConfig: () => {
616
614
  onOpenSlippageConfig?.();
617
615
  } }), (0, jsx_runtime_1.jsx)(WidgetErrorWell_js_1.WidgetErrorWell, { hasInsufficientBalance: hasInsufficientBalance, error: error, quote: quote, currency: fromToken, isHighRelayerServiceFee: highRelayerServiceFee, isCapacityExceededError: isCapacityExceededError, isCouldNotExecuteError: isCouldNotExecuteError, relayerFeeProportion: relayerFeeProportion, containerClassName: "relay:mb-[var(--relay-spacing-widget-card-section-gutter)]", recipientWalletSupportsChain: recipientWalletSupportsChain, recipient: recipient, toChainWalletVMSupported: toChainWalletVMSupported, recipientLinkedWallet: recipientLinkedWallet, toChainVmType: toChain?.vmType }), (0, jsx_runtime_1.jsx)(SwapButton_js_1.default, { isFetchingQuote: isFetchingQuote, transactionModalOpen: transactionModalOpen, depositAddressModalOpen: depositAddressModalOpen, isValidFromAddress: isValidFromAddress, isValidToAddress: isValidToAddress, fromChainWalletVMSupported: fromChainWalletVMSupported, context: 'Swap', showHighPriceImpactWarning: showHighPriceImpactWarning, onConnectWallet: onConnectWallet, onAnalyticEvent: onAnalyticEvent, quote: quote, address: address, hasInsufficientBalance: hasInsufficientBalance, isInsufficientLiquidityError: isInsufficientLiquidityError, recipientWalletSupportsChain: recipientWalletSupportsChain, debouncedInputAmountValue: debouncedInputAmountValue, debouncedOutputAmountValue: debouncedOutputAmountValue, isSameCurrencySameRecipientSwap: isSameCurrencySameRecipientSwap, onClick: () => {