@relayprotocol/relay-kit-ui 9.1.3 → 10.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.
Files changed (83) hide show
  1. package/_cjs/src/components/common/RefundReason.js.map +1 -1
  2. package/_cjs/src/components/common/TransactionModal/DepositAddressModalRenderer.js +7 -10
  3. package/_cjs/src/components/common/TransactionModal/DepositAddressModalRenderer.js.map +1 -1
  4. package/_cjs/src/components/common/TransactionModal/steps/DepositAddressValidatingStep.js.map +1 -1
  5. package/_cjs/src/components/common/TransactionModal/steps/ErrorStep.js +2 -2
  6. package/_cjs/src/components/common/TransactionModal/steps/ErrorStep.js.map +1 -1
  7. package/_cjs/src/components/common/TransactionModal/steps/SwapSuccessStep.js +15 -16
  8. package/_cjs/src/components/common/TransactionModal/steps/SwapSuccessStep.js.map +1 -1
  9. package/_cjs/src/components/widgets/OnrampWidget/modals/OnrampModal.js +10 -13
  10. package/_cjs/src/components/widgets/OnrampWidget/modals/OnrampModal.js.map +1 -1
  11. package/_cjs/src/components/widgets/SwapWidget/index.js +4 -4
  12. package/_cjs/src/components/widgets/SwapWidget/index.js.map +1 -1
  13. package/_cjs/src/components/widgets/SwapWidgetRenderer.js +5 -6
  14. package/_cjs/src/components/widgets/SwapWidgetRenderer.js.map +1 -1
  15. package/_cjs/src/constants/maxGasBuffer.js +1 -2
  16. package/_cjs/src/constants/maxGasBuffer.js.map +1 -1
  17. package/_cjs/src/constants/walletCompatibility.js +5 -2
  18. package/_cjs/src/constants/walletCompatibility.js.map +1 -1
  19. package/_cjs/src/providers/RelayKitProvider.js +22 -1
  20. package/_cjs/src/providers/RelayKitProvider.js.map +1 -1
  21. package/_cjs/src/types/RelayTransaction.js.map +1 -1
  22. package/_cjs/src/utils/nativeMaxAmount.js +4 -4
  23. package/_cjs/src/utils/nativeMaxAmount.js.map +1 -1
  24. package/_cjs/src/utils/relayTransaction.js +14 -1
  25. package/_cjs/src/utils/relayTransaction.js.map +1 -1
  26. package/_cjs/src/version.js +1 -1
  27. package/_cjs/src/version.js.map +1 -1
  28. package/_cjs/tsconfig.build.tsbuildinfo +1 -1
  29. package/_esm/src/components/common/RefundReason.js.map +1 -1
  30. package/_esm/src/components/common/TransactionModal/DepositAddressModalRenderer.js +10 -10
  31. package/_esm/src/components/common/TransactionModal/DepositAddressModalRenderer.js.map +1 -1
  32. package/_esm/src/components/common/TransactionModal/steps/DepositAddressValidatingStep.js +1 -1
  33. package/_esm/src/components/common/TransactionModal/steps/DepositAddressValidatingStep.js.map +1 -1
  34. package/_esm/src/components/common/TransactionModal/steps/ErrorStep.js +2 -2
  35. package/_esm/src/components/common/TransactionModal/steps/ErrorStep.js.map +1 -1
  36. package/_esm/src/components/common/TransactionModal/steps/SwapSuccessStep.js +15 -16
  37. package/_esm/src/components/common/TransactionModal/steps/SwapSuccessStep.js.map +1 -1
  38. package/_esm/src/components/widgets/OnrampWidget/modals/OnrampModal.js +14 -14
  39. package/_esm/src/components/widgets/OnrampWidget/modals/OnrampModal.js.map +1 -1
  40. package/_esm/src/components/widgets/SwapWidget/index.js +4 -4
  41. package/_esm/src/components/widgets/SwapWidget/index.js.map +1 -1
  42. package/_esm/src/components/widgets/SwapWidgetRenderer.js +5 -6
  43. package/_esm/src/components/widgets/SwapWidgetRenderer.js.map +1 -1
  44. package/_esm/src/constants/maxGasBuffer.js +0 -1
  45. package/_esm/src/constants/maxGasBuffer.js.map +1 -1
  46. package/_esm/src/constants/walletCompatibility.js +5 -2
  47. package/_esm/src/constants/walletCompatibility.js.map +1 -1
  48. package/_esm/src/providers/RelayKitProvider.js +31 -2
  49. package/_esm/src/providers/RelayKitProvider.js.map +1 -1
  50. package/_esm/src/types/RelayTransaction.js.map +1 -1
  51. package/_esm/src/utils/nativeMaxAmount.js +4 -4
  52. package/_esm/src/utils/nativeMaxAmount.js.map +1 -1
  53. package/_esm/src/utils/relayTransaction.js +20 -0
  54. package/_esm/src/utils/relayTransaction.js.map +1 -1
  55. package/_esm/src/version.js +1 -1
  56. package/_esm/src/version.js.map +1 -1
  57. package/_esm/tsconfig.build.tsbuildinfo +1 -1
  58. package/_types/src/components/common/RefundReason.d.ts +1 -1
  59. package/_types/src/components/common/TransactionModal/DepositAddressModalRenderer.d.ts.map +1 -1
  60. package/_types/src/components/common/TransactionModal/steps/DepositAddressValidatingStep.d.ts +2 -2
  61. package/_types/src/components/common/TransactionModal/steps/DepositAddressValidatingStep.d.ts.map +1 -1
  62. package/_types/src/components/common/TransactionModal/steps/SwapSuccessStep.d.ts.map +1 -1
  63. package/_types/src/components/widgets/OnrampWidget/modals/OnrampModal.d.ts.map +1 -1
  64. package/_types/src/components/widgets/SwapWidget/index.d.ts +0 -2
  65. package/_types/src/components/widgets/SwapWidget/index.d.ts.map +1 -1
  66. package/_types/src/components/widgets/SwapWidgetRenderer.d.ts +0 -2
  67. package/_types/src/components/widgets/SwapWidgetRenderer.d.ts.map +1 -1
  68. package/_types/src/constants/maxGasBuffer.d.ts +0 -1
  69. package/_types/src/constants/maxGasBuffer.d.ts.map +1 -1
  70. package/_types/src/constants/walletCompatibility.d.ts.map +1 -1
  71. package/_types/src/providers/RelayKitProvider.d.ts +13 -5
  72. package/_types/src/providers/RelayKitProvider.d.ts.map +1 -1
  73. package/_types/src/types/RelayTransaction.d.ts +1 -1
  74. package/_types/src/utils/nativeMaxAmount.d.ts +2 -2
  75. package/_types/src/utils/nativeMaxAmount.d.ts.map +1 -1
  76. package/_types/src/utils/relayTransaction.d.ts +16 -0
  77. package/_types/src/utils/relayTransaction.d.ts.map +1 -1
  78. package/_types/src/utils/tokens.d.ts +1 -1
  79. package/_types/src/version.d.ts +1 -1
  80. package/_types/src/version.d.ts.map +1 -1
  81. package/_types/tsconfig.build.tsbuildinfo +1 -1
  82. package/package.json +3 -3
  83. package/readme.md +14 -0
@@ -121,13 +121,9 @@ const OnrampModal = ({ open, amount, amountFormatted, recipient, fromToken, toTo
121
121
  step === OnrampStep.Processing &&
122
122
  open,
123
123
  refetchInterval(query) {
124
- const observableStates = ['waiting', 'pending'];
125
- if (!query.state.data?.status ||
126
- (depositAddress &&
127
- observableStates.includes(query.state.data?.status))) {
128
- return 1000;
129
- }
130
- return 0;
124
+ const terminalStates = ['success', 'failure', 'refund'];
125
+ const status = query.state.data?.status;
126
+ return status && terminalStates.includes(status) ? 0 : 1000;
131
127
  }
132
128
  });
133
129
  const fillTxHash = (0, react_1.useMemo)(() => {
@@ -137,8 +133,7 @@ const OnrampModal = ({ open, amount, amountFormatted, recipient, fromToken, toTo
137
133
  }, [executionStatus]);
138
134
  const { data: transactions, isLoading: isLoadingTransaction } = (0, relay_kit_hooks_1.useRequests)(step === OnrampStep.Success && fillTxHash
139
135
  ? {
140
- user: recipient,
141
- hash: fillTxHash
136
+ fillTxHash
142
137
  }
143
138
  : undefined, client?.baseApiUrl, {
144
139
  enabled: Boolean(step === OnrampStep.Success && fillTxHash),
@@ -148,9 +143,9 @@ const OnrampModal = ({ open, amount, amountFormatted, recipient, fromToken, toTo
148
143
  retryOnMount: false
149
144
  });
150
145
  const transaction = transactions && transactions[0] ? transactions[0] : null;
151
- const toAmountFormatted = transaction?.data?.metadata?.currencyOut
152
- ?.amountFormatted
153
- ? ((0, numbers_js_1.formatBN)(+transaction.data.metadata.currencyOut.amountFormatted, 5, transaction?.data?.metadata?.currencyOut?.currency?.decimals ?? 18) ?? undefined)
146
+ const { currencyOut: requestCurrencyOut } = (0, relayTransaction_js_1.getRequestCurrencies)(transaction);
147
+ const toAmountFormatted = requestCurrencyOut?.amountFormatted
148
+ ? ((0, numbers_js_1.formatBN)(+requestCurrencyOut.amountFormatted, 5, requestCurrencyOut.currency?.decimals ?? 18) ?? undefined)
154
149
  : amountToTokenFormatted;
155
150
  const fillTxUrl = fillTxHash
156
151
  ? (0, getTxBlockExplorerUrl_js_1.getTxBlockExplorerUrl)(toToken.chainId, client?.chains, fillTxHash)
@@ -159,7 +154,9 @@ const OnrampModal = ({ open, amount, amountFormatted, recipient, fromToken, toTo
159
154
  ? `https://buy.moonpay.com/transaction_receipt?transactionId=${moonPayRequestId}`
160
155
  : null;
161
156
  (0, react_1.useEffect)(() => {
162
- if (executionStatus?.status === 'pending' &&
157
+ if ((executionStatus?.status === 'pending' ||
158
+ executionStatus?.status === 'depositing' ||
159
+ executionStatus?.status === 'submitted') &&
163
160
  (step !== OnrampStep.Processing ||
164
161
  processingStep !== OnrampProcessingStep.Relaying)) {
165
162
  setStep(OnrampStep.Processing);
@@ -1 +1 @@
1
- {"version":3,"file":"OnrampModal.js","sourceRoot":"","sources":["../../../../../../src/components/widgets/OnrampWidget/modals/OnrampModal.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n getDeadAddress,\n LogLevel,\n type Execute,\n type RelayChain\n} from '@relayprotocol/relay-sdk'\nimport { type FC, useCallback, useEffect, useMemo, useState } from 'react'\nimport { Modal } from '../../../common/Modal.js'\nimport type { FiatCurrency, Token } from '../../../../types/index.js'\nimport useRelayClient from '../../../../hooks/useRelayClient.js'\nimport { EventNames } from '../../../../constants/events.js'\nimport { useHapticEvent } from '../../../../providers/RelayKitProvider.js'\nimport {\n useDepositAddressStatus,\n useQuote,\n useRequests,\n useTokenPrice\n} from '@relayprotocol/relay-kit-hooks'\nimport { extractDepositRequestId } from '../../../../utils/relayTransaction.js'\nimport { parseUnits, zeroAddress } from 'viem'\nimport {\n appendMetadataToRequest,\n extractDepositAddress\n} from '../../../../utils/quote.js'\nimport { getTxBlockExplorerUrl } from '../../../../utils/getTxBlockExplorerUrl.js'\nimport { OnrampConfirmingStep } from './steps/OnrampConfirmingStep.js'\nimport { OnrampProcessingStepUI } from './steps/OnrampProcessingStepUI.js'\nimport { OnrampProcessingPassthroughStep } from './steps/OnrampProcessingPassthroughStep.js'\nimport { OnrampSuccessStep } from './steps/OnrampSuccessStep.js'\nimport { OnrampMoonPayStep } from './steps/OnrampMoonPayStep.js'\nimport { formatBN } from '../../../../utils/numbers.js'\nimport { ErrorStep } from '../../../common/TransactionModal/steps/ErrorStep.js'\nimport { errorToJSON } from '../../../../utils/errors.js'\nimport { useAccount } from 'wagmi'\nimport { mainnet } from 'viem/chains'\n\nexport enum OnrampStep {\n Confirming,\n Moonpay,\n Processing,\n ProcessingPassthrough,\n Success,\n Error\n}\n\nexport enum OnrampProcessingStep {\n Finalizing,\n Relaying\n}\n\ntype OnrampModalProps = {\n open: boolean\n amount?: string\n amountFormatted?: string\n amountToTokenFormatted?: string\n fromToken: Token\n fromChain?: RelayChain\n toToken: Token\n toChain?: RelayChain\n fiatCurrency: FiatCurrency\n recipient?: string\n isPassthrough?: boolean\n moonPayCurrencyCode?: string\n usdRate?: number\n moonPayThemeId?: string\n moonPayThemeMode?: 'dark' | 'light'\n moonPayApiKey?: string\n moonpayOnUrlSignatureRequested: (url: string) => Promise<string> | void\n onAnalyticEvent?: (eventName: string, data?: any) => void\n onOpenChange: (open: boolean) => void\n onSuccess?: (data: Execute, moonpayRequestId: string) => void\n onError?: (error: string, data?: Execute, moonpayRequestId?: string) => void\n}\n\ntype TxHashes = { txHash: string; chainId: number }[]\n\nexport const OnrampModal: FC<OnrampModalProps> = ({\n open,\n amount,\n amountFormatted,\n recipient,\n fromToken,\n toToken,\n toChain,\n fromChain,\n fiatCurrency,\n isPassthrough,\n amountToTokenFormatted,\n moonPayCurrencyCode,\n usdRate,\n moonPayThemeId,\n moonPayThemeMode,\n moonPayApiKey,\n moonpayOnUrlSignatureRequested,\n onAnalyticEvent,\n onSuccess,\n onError,\n onOpenChange\n}) => {\n const haptic = useHapticEvent()\n const [swapError, setSwapError] = useState<Error | null>(null)\n const [step, setStep] = useState<OnrampStep>(OnrampStep.Confirming)\n const [processingStep, setProcessingStep] = useState<\n OnrampProcessingStep | undefined\n >()\n const [moonPayRequestId, setMoonPayRequestId] = useState<string | undefined>()\n const client = useRelayClient()\n const { connector } = useAccount()\n const [moonPayIdAppended, setMoonPayIdAppended] = useState(false)\n const { data: ethTokenPriceResponse } = useTokenPrice(\n client?.baseApiUrl,\n {\n address: zeroAddress,\n chainId: mainnet.id,\n referrer: client?.source\n },\n {\n refetchInterval: 60000 * 5, //5 minutes\n refetchOnWindowFocus: false\n }\n )\n const [passthroughExternalId, setPassthroughExternalId] = useState<\n string | undefined\n >()\n\n useEffect(() => {\n if (!open) {\n setStep(OnrampStep.Confirming)\n setProcessingStep(undefined)\n setMoonPayRequestId(undefined)\n setMoonPayIdAppended(false)\n setSwapError(null)\n setPassthroughExternalId(undefined)\n } else {\n if (isPassthrough) {\n setStep(OnrampStep.Moonpay)\n setPassthroughExternalId(\n `${recipient ? recipient.slice(recipient.length - 5) : ''}${Date.now()}`\n )\n }\n onAnalyticEvent?.(EventNames.ONRAMP_MODAL_OPEN, {\n isPassthrough\n })\n }\n }, [open])\n\n const ethAmount =\n ethTokenPriceResponse && ethTokenPriceResponse.price\n ? +(amount ?? '0') / ethTokenPriceResponse.price\n : 0\n\n const {\n data: quote,\n error: quoteError,\n isFetching: isFetchingQuote\n } = useQuote(\n client ?? undefined,\n undefined,\n {\n originChainId: fromToken.chainId,\n originCurrency: fromToken.address,\n destinationChainId: toToken.chainId,\n destinationCurrency: toToken.address,\n useDepositAddress: true,\n tradeType: 'EXACT_INPUT',\n amount:\n fromToken.symbol === 'USDC'\n ? parseUnits(`${amount}`, 6).toString()\n : parseUnits(`${ethAmount}`, fromToken.decimals).toString(),\n user: getDeadAddress(),\n recipient\n },\n undefined,\n undefined,\n {\n refetchOnMount: false,\n refetchOnWindowFocus: false,\n refetchOnReconnect: false,\n enabled: Boolean(\n amount &&\n amount.length > 0 &&\n toToken &&\n fromToken &&\n !isPassthrough &&\n recipient !== undefined &&\n open\n )\n }\n )\n\n const totalAmount =\n quote?.fees && amount && !isPassthrough\n ? `${\n Math.floor(\n (Number(quote.fees.relayer?.amountUsd ?? 0) +\n Number(quote.fees.gas?.amountUsd ?? 0) +\n Number(quote.fees.app?.amountUsd ?? 0) +\n +amount) *\n 100\n ) / 100\n }`\n : amount\n const ethTotalAmount = formatBN(\n totalAmount ? +totalAmount / (ethTokenPriceResponse?.price ?? 0) : 0,\n 5,\n 18\n )\n const toTokenTotalAmount = formatBN(\n +(totalAmount ?? '0') / (usdRate ?? 0),\n 5,\n toToken.decimals\n )\n\n const depositAddress = useMemo(\n () => extractDepositAddress(quote?.steps as Execute['steps']),\n [quote]\n )\n\n const baseTransactionUrl = client?.baseApiUrl.includes('testnets')\n ? 'https://testnets.relay.link'\n : 'https://relay.link'\n\n const requestId = useMemo(\n () => extractDepositRequestId(quote?.steps as Execute['steps']),\n [quote]\n )\n\n const { data: executionStatus } = useDepositAddressStatus(\n depositAddress ? { depositAddress } : undefined,\n client?.baseApiUrl,\n {\n enabled:\n depositAddress !== undefined &&\n step === OnrampStep.Processing &&\n open,\n refetchInterval(query) {\n const observableStates = ['waiting', 'pending']\n\n if (\n !query.state.data?.status ||\n (depositAddress &&\n observableStates.includes(query.state.data?.status))\n ) {\n return 1000\n }\n return 0\n }\n }\n )\n\n const fillTxHash = useMemo(() => {\n if (executionStatus?.txHashes && executionStatus?.txHashes[0]) {\n return executionStatus?.txHashes[0]\n }\n }, [executionStatus])\n\n const { data: transactions, isLoading: isLoadingTransaction } = useRequests(\n step === OnrampStep.Success && fillTxHash\n ? {\n user: recipient,\n hash: fillTxHash\n }\n : undefined,\n client?.baseApiUrl,\n {\n enabled: Boolean(step === OnrampStep.Success && fillTxHash),\n refetchOnWindowFocus: false,\n refetchOnReconnect: false,\n refetchInterval: false,\n retryOnMount: false\n }\n )\n\n const transaction = transactions && transactions[0] ? transactions[0] : null\n const toAmountFormatted = transaction?.data?.metadata?.currencyOut\n ?.amountFormatted\n ? (formatBN(\n +transaction.data.metadata.currencyOut.amountFormatted,\n 5,\n transaction?.data?.metadata?.currencyOut?.currency?.decimals ?? 18\n ) ?? undefined)\n : amountToTokenFormatted\n\n const fillTxUrl = fillTxHash\n ? getTxBlockExplorerUrl(toToken.chainId, client?.chains, fillTxHash)\n : undefined\n\n const moonpayTxUrl = moonPayRequestId\n ? `https://buy.moonpay.com/transaction_receipt?transactionId=${moonPayRequestId}`\n : null\n\n useEffect(() => {\n if (\n executionStatus?.status === 'pending' &&\n (step !== OnrampStep.Processing ||\n processingStep !== OnrampProcessingStep.Relaying)\n ) {\n setStep(OnrampStep.Processing)\n setProcessingStep(OnrampProcessingStep.Relaying)\n }\n if (executionStatus?.status === 'success') {\n setStep(OnrampStep.Success)\n haptic('success')\n onAnalyticEvent?.(EventNames.ONRAMP_SUCCESS, {\n chain_id_in: fromToken?.chainId,\n currency_in: fromToken?.symbol,\n chain_id_out: toToken?.chainId,\n currency_out: toToken?.symbol,\n quote_id: requestId,\n txHashes: executionStatus.txHashes,\n amount,\n totalAmount,\n ethTotalAmount,\n moonPayRequestId,\n isPassthrough\n })\n onSuccess?.(quote as Execute, moonPayRequestId as string)\n setProcessingStep(undefined)\n }\n if (\n executionStatus?.status === 'failure' ||\n executionStatus?.status === 'refund' ||\n quoteError\n ) {\n const swapError = new Error(\n executionStatus?.details ??\n 'Oops! Something went wrong while processing your transaction.'\n )\n onOnrampError(\n errorToJSON(executionStatus?.details ?? quoteError),\n swapError\n )\n }\n }, [executionStatus, quoteError])\n\n useEffect(() => {\n if (\n moonPayRequestId &&\n quote &&\n executionStatus?.inTxHashes &&\n executionStatus?.inTxHashes[0] &&\n !moonPayIdAppended\n ) {\n setMoonPayIdAppended(true)\n appendMetadataToRequest(\n client?.baseApiUrl,\n `${requestId}`,\n {\n moonPayId: moonPayRequestId\n },\n client?.source\n )\n ?.then(() => {\n client?.log(\n ['Posting MoonPay request id', moonPayRequestId, requestId],\n LogLevel.Verbose\n )\n })\n .catch((e) => {\n setMoonPayIdAppended(false)\n throw e\n })\n }\n }, [moonPayRequestId, executionStatus])\n\n const allTxHashes = useMemo(() => {\n const isRefund = executionStatus?.status === 'refund'\n const _allTxHashes: TxHashes = []\n executionStatus?.txHashes?.forEach((txHash) => {\n _allTxHashes.push({\n txHash,\n chainId: isRefund\n ? (fromToken?.chainId as number)\n : (toToken?.chainId as number)\n })\n })\n\n executionStatus?.inTxHashes?.forEach((txHash) => {\n _allTxHashes.push({\n txHash,\n chainId: fromToken?.chainId as number\n })\n })\n return _allTxHashes\n }, [executionStatus?.txHashes, executionStatus?.inTxHashes])\n\n const onOnrampError = useCallback(\n (errorMsg: any, error: Error) => {\n if (step !== OnrampStep.Error) {\n onError?.(error.message, quote as Execute, moonPayRequestId)\n }\n setStep(OnrampStep.Error)\n haptic('error')\n onAnalyticEvent?.(EventNames.ONRAMP_ERROR, {\n error_message: errorMsg,\n wallet_connector: connector?.name,\n quote_id: requestId,\n amount_in: amount,\n currency_in: fromToken?.symbol,\n chain_id_in: fromToken?.chainId,\n amount_out: quote?.details?.currencyOut?.amountFormatted,\n currency_out: toToken?.symbol,\n chain_id_out: toToken?.chainId,\n txHashes: executionStatus?.txHashes ?? []\n })\n setSwapError(error)\n },\n [\n executionStatus,\n connector,\n requestId,\n quote,\n toToken,\n fromToken,\n amount,\n swapError,\n moonPayRequestId,\n step\n ]\n )\n\n return (\n <Modal\n trigger={null}\n open={open}\n onOpenChange={(open) => {\n if (!open) {\n onAnalyticEvent?.(EventNames.ONRAMP_MODAL_CLOSE)\n }\n onOpenChange(open)\n }}\n className=\"relay:overflow-hidden relay:p-4 relay:!max-w-[412px] max-[520px]:!relay-max-w-[unset]\"\n >\n {step === OnrampStep.Confirming ? (\n <OnrampConfirmingStep\n toToken={toToken}\n fromToken={fromToken}\n fromChain={fromChain}\n toChain={toChain}\n requestId={requestId ?? undefined}\n depositAddress={depositAddress}\n recipient={recipient}\n amount={amount}\n totalAmount={totalAmount ?? undefined}\n ethTotalAmount={ethTotalAmount}\n isFetchingQuote={isFetchingQuote}\n onAnalyticEvent={onAnalyticEvent}\n setStep={setStep}\n />\n ) : null}\n <OnrampMoonPayStep\n step={step}\n processingStep={processingStep}\n toToken={toToken}\n fromToken={fromToken}\n fromChain={fromChain}\n toChain={toChain}\n recipient={recipient}\n depositAddress={depositAddress}\n totalAmount={\n isPassthrough\n ? toTokenTotalAmount\n : fromToken.symbol === 'ETH'\n ? ethTotalAmount\n : (totalAmount ?? undefined)\n }\n fiatCurrency={fiatCurrency}\n isPassthrough={isPassthrough}\n moonPayCurrencyCode={moonPayCurrencyCode}\n onAnalyticEvent={onAnalyticEvent}\n setStep={setStep}\n setProcessingStep={setProcessingStep}\n setMoonPayRequestId={setMoonPayRequestId}\n moonpayOnUrlSignatureRequested={moonpayOnUrlSignatureRequested}\n onPassthroughSuccess={() => {\n setStep(OnrampStep.Success)\n onAnalyticEvent?.(EventNames.ONRAMP_PASSTHROUGH_SUCCESS, {\n moonPayRequestId,\n amount,\n totalAmount,\n ethTotalAmount\n })\n }}\n moonPayThemeId={moonPayThemeId}\n moonPayThemeMode={moonPayThemeMode}\n moonPayApiKey={moonPayApiKey}\n quoteRequestId={requestId}\n passthroughExternalId={passthroughExternalId}\n onError={(error) => {\n onOnrampError(error.message, error)\n }}\n />\n {step === OnrampStep.ProcessingPassthrough ? (\n <OnrampProcessingPassthroughStep\n toToken={toToken}\n amountToTokenFormatted={amountToTokenFormatted}\n moonpayTxUrl={moonpayTxUrl ?? undefined}\n amount={amountFormatted}\n />\n ) : null}\n {step === OnrampStep.Processing ? (\n <OnrampProcessingStepUI\n toToken={toToken}\n fromToken={fromToken}\n fromChain={fromChain}\n toChain={toChain}\n moonpayTxUrl={moonpayTxUrl ?? undefined}\n fillTxUrl={fillTxUrl}\n fillTxHash={fillTxHash}\n processingStep={processingStep}\n baseTransactionUrl={baseTransactionUrl}\n requestId={requestId ?? undefined}\n />\n ) : null}\n {step === OnrampStep.Success ? (\n <OnrampSuccessStep\n toToken={toToken}\n isLoadingTransaction={isLoadingTransaction}\n fillTxHash={fillTxHash}\n fillTxUrl={fillTxUrl}\n moonpayTxUrl={moonpayTxUrl ?? undefined}\n toAmountFormatted={toAmountFormatted}\n baseTransactionUrl={baseTransactionUrl}\n onOpenChange={onOpenChange}\n />\n ) : null}\n {step === OnrampStep.Error ? (\n <ErrorStep\n error={quoteError || swapError}\n allTxHashes={allTxHashes}\n address={recipient}\n onOpenChange={onOpenChange}\n transaction={transaction ?? undefined}\n fromChain={fromChain}\n toChain={toChain}\n />\n ) : null}\n </Modal>\n )\n}\n"]}
1
+ {"version":3,"file":"OnrampModal.js","sourceRoot":"","sources":["../../../../../../src/components/widgets/OnrampWidget/modals/OnrampModal.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n getDeadAddress,\n LogLevel,\n type Execute,\n type RelayChain\n} from '@relayprotocol/relay-sdk'\nimport { type FC, useCallback, useEffect, useMemo, useState } from 'react'\nimport { Modal } from '../../../common/Modal.js'\nimport type { FiatCurrency, Token } from '../../../../types/index.js'\nimport useRelayClient from '../../../../hooks/useRelayClient.js'\nimport { EventNames } from '../../../../constants/events.js'\nimport { useHapticEvent } from '../../../../providers/RelayKitProvider.js'\nimport {\n useDepositAddressStatus,\n useQuote,\n useRequests,\n useTokenPrice\n} from '@relayprotocol/relay-kit-hooks'\nimport {\n extractDepositRequestId,\n getRequestCurrencies\n} from '../../../../utils/relayTransaction.js'\nimport { parseUnits, zeroAddress } from 'viem'\nimport {\n appendMetadataToRequest,\n extractDepositAddress\n} from '../../../../utils/quote.js'\nimport { getTxBlockExplorerUrl } from '../../../../utils/getTxBlockExplorerUrl.js'\nimport { OnrampConfirmingStep } from './steps/OnrampConfirmingStep.js'\nimport { OnrampProcessingStepUI } from './steps/OnrampProcessingStepUI.js'\nimport { OnrampProcessingPassthroughStep } from './steps/OnrampProcessingPassthroughStep.js'\nimport { OnrampSuccessStep } from './steps/OnrampSuccessStep.js'\nimport { OnrampMoonPayStep } from './steps/OnrampMoonPayStep.js'\nimport { formatBN } from '../../../../utils/numbers.js'\nimport { ErrorStep } from '../../../common/TransactionModal/steps/ErrorStep.js'\nimport { errorToJSON } from '../../../../utils/errors.js'\nimport { useAccount } from 'wagmi'\nimport { mainnet } from 'viem/chains'\n\nexport enum OnrampStep {\n Confirming,\n Moonpay,\n Processing,\n ProcessingPassthrough,\n Success,\n Error\n}\n\nexport enum OnrampProcessingStep {\n Finalizing,\n Relaying\n}\n\ntype OnrampModalProps = {\n open: boolean\n amount?: string\n amountFormatted?: string\n amountToTokenFormatted?: string\n fromToken: Token\n fromChain?: RelayChain\n toToken: Token\n toChain?: RelayChain\n fiatCurrency: FiatCurrency\n recipient?: string\n isPassthrough?: boolean\n moonPayCurrencyCode?: string\n usdRate?: number\n moonPayThemeId?: string\n moonPayThemeMode?: 'dark' | 'light'\n moonPayApiKey?: string\n moonpayOnUrlSignatureRequested: (url: string) => Promise<string> | void\n onAnalyticEvent?: (eventName: string, data?: any) => void\n onOpenChange: (open: boolean) => void\n onSuccess?: (data: Execute, moonpayRequestId: string) => void\n onError?: (error: string, data?: Execute, moonpayRequestId?: string) => void\n}\n\ntype TxHashes = { txHash: string; chainId: number }[]\n\nexport const OnrampModal: FC<OnrampModalProps> = ({\n open,\n amount,\n amountFormatted,\n recipient,\n fromToken,\n toToken,\n toChain,\n fromChain,\n fiatCurrency,\n isPassthrough,\n amountToTokenFormatted,\n moonPayCurrencyCode,\n usdRate,\n moonPayThemeId,\n moonPayThemeMode,\n moonPayApiKey,\n moonpayOnUrlSignatureRequested,\n onAnalyticEvent,\n onSuccess,\n onError,\n onOpenChange\n}) => {\n const haptic = useHapticEvent()\n const [swapError, setSwapError] = useState<Error | null>(null)\n const [step, setStep] = useState<OnrampStep>(OnrampStep.Confirming)\n const [processingStep, setProcessingStep] = useState<\n OnrampProcessingStep | undefined\n >()\n const [moonPayRequestId, setMoonPayRequestId] = useState<string | undefined>()\n const client = useRelayClient()\n const { connector } = useAccount()\n const [moonPayIdAppended, setMoonPayIdAppended] = useState(false)\n const { data: ethTokenPriceResponse } = useTokenPrice(\n client?.baseApiUrl,\n {\n address: zeroAddress,\n chainId: mainnet.id,\n referrer: client?.source\n },\n {\n refetchInterval: 60000 * 5, //5 minutes\n refetchOnWindowFocus: false\n }\n )\n const [passthroughExternalId, setPassthroughExternalId] = useState<\n string | undefined\n >()\n\n useEffect(() => {\n if (!open) {\n setStep(OnrampStep.Confirming)\n setProcessingStep(undefined)\n setMoonPayRequestId(undefined)\n setMoonPayIdAppended(false)\n setSwapError(null)\n setPassthroughExternalId(undefined)\n } else {\n if (isPassthrough) {\n setStep(OnrampStep.Moonpay)\n setPassthroughExternalId(\n `${recipient ? recipient.slice(recipient.length - 5) : ''}${Date.now()}`\n )\n }\n onAnalyticEvent?.(EventNames.ONRAMP_MODAL_OPEN, {\n isPassthrough\n })\n }\n }, [open])\n\n const ethAmount =\n ethTokenPriceResponse && ethTokenPriceResponse.price\n ? +(amount ?? '0') / ethTokenPriceResponse.price\n : 0\n\n const {\n data: quote,\n error: quoteError,\n isFetching: isFetchingQuote\n } = useQuote(\n client ?? undefined,\n undefined,\n {\n originChainId: fromToken.chainId,\n originCurrency: fromToken.address,\n destinationChainId: toToken.chainId,\n destinationCurrency: toToken.address,\n useDepositAddress: true,\n tradeType: 'EXACT_INPUT',\n amount:\n fromToken.symbol === 'USDC'\n ? parseUnits(`${amount}`, 6).toString()\n : parseUnits(`${ethAmount}`, fromToken.decimals).toString(),\n user: getDeadAddress(),\n recipient\n },\n undefined,\n undefined,\n {\n refetchOnMount: false,\n refetchOnWindowFocus: false,\n refetchOnReconnect: false,\n enabled: Boolean(\n amount &&\n amount.length > 0 &&\n toToken &&\n fromToken &&\n !isPassthrough &&\n recipient !== undefined &&\n open\n )\n }\n )\n\n const totalAmount =\n quote?.fees && amount && !isPassthrough\n ? `${\n Math.floor(\n (Number(quote.fees.relayer?.amountUsd ?? 0) +\n Number(quote.fees.gas?.amountUsd ?? 0) +\n Number(quote.fees.app?.amountUsd ?? 0) +\n +amount) *\n 100\n ) / 100\n }`\n : amount\n const ethTotalAmount = formatBN(\n totalAmount ? +totalAmount / (ethTokenPriceResponse?.price ?? 0) : 0,\n 5,\n 18\n )\n const toTokenTotalAmount = formatBN(\n +(totalAmount ?? '0') / (usdRate ?? 0),\n 5,\n toToken.decimals\n )\n\n const depositAddress = useMemo(\n () => extractDepositAddress(quote?.steps as Execute['steps']),\n [quote]\n )\n\n const baseTransactionUrl = client?.baseApiUrl.includes('testnets')\n ? 'https://testnets.relay.link'\n : 'https://relay.link'\n\n const requestId = useMemo(\n () => extractDepositRequestId(quote?.steps as Execute['steps']),\n [quote]\n )\n\n const { data: executionStatus } = useDepositAddressStatus(\n depositAddress ? { depositAddress } : undefined,\n client?.baseApiUrl,\n {\n enabled:\n depositAddress !== undefined &&\n step === OnrampStep.Processing &&\n open,\n refetchInterval(query) {\n // Keep polling until the request reaches a terminal state. Non-terminal\n // states (waiting, pending, depositing, submitted) and an unknown\n // status all continue polling.\n const terminalStates = ['success', 'failure', 'refund']\n const status = query.state.data?.status\n return status && terminalStates.includes(status) ? 0 : 1000\n }\n }\n )\n\n const fillTxHash = useMemo(() => {\n if (executionStatus?.txHashes && executionStatus?.txHashes[0]) {\n return executionStatus?.txHashes[0]\n }\n }, [executionStatus])\n\n const { data: transactions, isLoading: isLoadingTransaction } = useRequests(\n step === OnrampStep.Success && fillTxHash\n ? {\n fillTxHash\n }\n : undefined,\n client?.baseApiUrl,\n {\n enabled: Boolean(step === OnrampStep.Success && fillTxHash),\n refetchOnWindowFocus: false,\n refetchOnReconnect: false,\n refetchInterval: false,\n retryOnMount: false\n }\n )\n\n const transaction = transactions && transactions[0] ? transactions[0] : null\n const { currencyOut: requestCurrencyOut } = getRequestCurrencies(transaction)\n const toAmountFormatted = requestCurrencyOut?.amountFormatted\n ? (formatBN(\n +requestCurrencyOut.amountFormatted,\n 5,\n requestCurrencyOut.currency?.decimals ?? 18\n ) ?? undefined)\n : amountToTokenFormatted\n\n const fillTxUrl = fillTxHash\n ? getTxBlockExplorerUrl(toToken.chainId, client?.chains, fillTxHash)\n : undefined\n\n const moonpayTxUrl = moonPayRequestId\n ? `https://buy.moonpay.com/transaction_receipt?transactionId=${moonPayRequestId}`\n : null\n\n useEffect(() => {\n if (\n (executionStatus?.status === 'pending' ||\n executionStatus?.status === 'depositing' ||\n executionStatus?.status === 'submitted') &&\n (step !== OnrampStep.Processing ||\n processingStep !== OnrampProcessingStep.Relaying)\n ) {\n setStep(OnrampStep.Processing)\n setProcessingStep(OnrampProcessingStep.Relaying)\n }\n if (executionStatus?.status === 'success') {\n setStep(OnrampStep.Success)\n haptic('success')\n onAnalyticEvent?.(EventNames.ONRAMP_SUCCESS, {\n chain_id_in: fromToken?.chainId,\n currency_in: fromToken?.symbol,\n chain_id_out: toToken?.chainId,\n currency_out: toToken?.symbol,\n quote_id: requestId,\n txHashes: executionStatus.txHashes,\n amount,\n totalAmount,\n ethTotalAmount,\n moonPayRequestId,\n isPassthrough\n })\n onSuccess?.(quote as Execute, moonPayRequestId as string)\n setProcessingStep(undefined)\n }\n if (\n executionStatus?.status === 'failure' ||\n executionStatus?.status === 'refund' ||\n quoteError\n ) {\n const swapError = new Error(\n executionStatus?.details ??\n 'Oops! Something went wrong while processing your transaction.'\n )\n onOnrampError(\n errorToJSON(executionStatus?.details ?? quoteError),\n swapError\n )\n }\n }, [executionStatus, quoteError])\n\n useEffect(() => {\n if (\n moonPayRequestId &&\n quote &&\n executionStatus?.inTxHashes &&\n executionStatus?.inTxHashes[0] &&\n !moonPayIdAppended\n ) {\n setMoonPayIdAppended(true)\n appendMetadataToRequest(\n client?.baseApiUrl,\n `${requestId}`,\n {\n moonPayId: moonPayRequestId\n },\n client?.source\n )\n ?.then(() => {\n client?.log(\n ['Posting MoonPay request id', moonPayRequestId, requestId],\n LogLevel.Verbose\n )\n })\n .catch((e) => {\n setMoonPayIdAppended(false)\n throw e\n })\n }\n }, [moonPayRequestId, executionStatus])\n\n const allTxHashes = useMemo(() => {\n const isRefund = executionStatus?.status === 'refund'\n const _allTxHashes: TxHashes = []\n executionStatus?.txHashes?.forEach((txHash) => {\n _allTxHashes.push({\n txHash,\n chainId: isRefund\n ? (fromToken?.chainId as number)\n : (toToken?.chainId as number)\n })\n })\n\n executionStatus?.inTxHashes?.forEach((txHash) => {\n _allTxHashes.push({\n txHash,\n chainId: fromToken?.chainId as number\n })\n })\n return _allTxHashes\n }, [executionStatus?.txHashes, executionStatus?.inTxHashes])\n\n const onOnrampError = useCallback(\n (errorMsg: any, error: Error) => {\n if (step !== OnrampStep.Error) {\n onError?.(error.message, quote as Execute, moonPayRequestId)\n }\n setStep(OnrampStep.Error)\n haptic('error')\n onAnalyticEvent?.(EventNames.ONRAMP_ERROR, {\n error_message: errorMsg,\n wallet_connector: connector?.name,\n quote_id: requestId,\n amount_in: amount,\n currency_in: fromToken?.symbol,\n chain_id_in: fromToken?.chainId,\n amount_out: quote?.details?.currencyOut?.amountFormatted,\n currency_out: toToken?.symbol,\n chain_id_out: toToken?.chainId,\n txHashes: executionStatus?.txHashes ?? []\n })\n setSwapError(error)\n },\n [\n executionStatus,\n connector,\n requestId,\n quote,\n toToken,\n fromToken,\n amount,\n swapError,\n moonPayRequestId,\n step\n ]\n )\n\n return (\n <Modal\n trigger={null}\n open={open}\n onOpenChange={(open) => {\n if (!open) {\n onAnalyticEvent?.(EventNames.ONRAMP_MODAL_CLOSE)\n }\n onOpenChange(open)\n }}\n className=\"relay:overflow-hidden relay:p-4 relay:!max-w-[412px] max-[520px]:!relay-max-w-[unset]\"\n >\n {step === OnrampStep.Confirming ? (\n <OnrampConfirmingStep\n toToken={toToken}\n fromToken={fromToken}\n fromChain={fromChain}\n toChain={toChain}\n requestId={requestId ?? undefined}\n depositAddress={depositAddress}\n recipient={recipient}\n amount={amount}\n totalAmount={totalAmount ?? undefined}\n ethTotalAmount={ethTotalAmount}\n isFetchingQuote={isFetchingQuote}\n onAnalyticEvent={onAnalyticEvent}\n setStep={setStep}\n />\n ) : null}\n <OnrampMoonPayStep\n step={step}\n processingStep={processingStep}\n toToken={toToken}\n fromToken={fromToken}\n fromChain={fromChain}\n toChain={toChain}\n recipient={recipient}\n depositAddress={depositAddress}\n totalAmount={\n isPassthrough\n ? toTokenTotalAmount\n : fromToken.symbol === 'ETH'\n ? ethTotalAmount\n : (totalAmount ?? undefined)\n }\n fiatCurrency={fiatCurrency}\n isPassthrough={isPassthrough}\n moonPayCurrencyCode={moonPayCurrencyCode}\n onAnalyticEvent={onAnalyticEvent}\n setStep={setStep}\n setProcessingStep={setProcessingStep}\n setMoonPayRequestId={setMoonPayRequestId}\n moonpayOnUrlSignatureRequested={moonpayOnUrlSignatureRequested}\n onPassthroughSuccess={() => {\n setStep(OnrampStep.Success)\n onAnalyticEvent?.(EventNames.ONRAMP_PASSTHROUGH_SUCCESS, {\n moonPayRequestId,\n amount,\n totalAmount,\n ethTotalAmount\n })\n }}\n moonPayThemeId={moonPayThemeId}\n moonPayThemeMode={moonPayThemeMode}\n moonPayApiKey={moonPayApiKey}\n quoteRequestId={requestId}\n passthroughExternalId={passthroughExternalId}\n onError={(error) => {\n onOnrampError(error.message, error)\n }}\n />\n {step === OnrampStep.ProcessingPassthrough ? (\n <OnrampProcessingPassthroughStep\n toToken={toToken}\n amountToTokenFormatted={amountToTokenFormatted}\n moonpayTxUrl={moonpayTxUrl ?? undefined}\n amount={amountFormatted}\n />\n ) : null}\n {step === OnrampStep.Processing ? (\n <OnrampProcessingStepUI\n toToken={toToken}\n fromToken={fromToken}\n fromChain={fromChain}\n toChain={toChain}\n moonpayTxUrl={moonpayTxUrl ?? undefined}\n fillTxUrl={fillTxUrl}\n fillTxHash={fillTxHash}\n processingStep={processingStep}\n baseTransactionUrl={baseTransactionUrl}\n requestId={requestId ?? undefined}\n />\n ) : null}\n {step === OnrampStep.Success ? (\n <OnrampSuccessStep\n toToken={toToken}\n isLoadingTransaction={isLoadingTransaction}\n fillTxHash={fillTxHash}\n fillTxUrl={fillTxUrl}\n moonpayTxUrl={moonpayTxUrl ?? undefined}\n toAmountFormatted={toAmountFormatted}\n baseTransactionUrl={baseTransactionUrl}\n onOpenChange={onOpenChange}\n />\n ) : null}\n {step === OnrampStep.Error ? (\n <ErrorStep\n error={quoteError || swapError}\n allTxHashes={allTxHashes}\n address={recipient}\n onOpenChange={onOpenChange}\n transaction={transaction ?? undefined}\n fromChain={fromChain}\n toChain={toChain}\n />\n ) : null}\n </Modal>\n )\n}\n"]}
@@ -37,7 +37,7 @@ const localStorage_js_1 = require("../../../utils/localStorage.js");
37
37
  const GasTopUpSection_js_1 = tslib_1.__importDefault(require("./GasTopUpSection.js"));
38
38
  const quote_js_1 = require("../../../utils/quote.js");
39
39
  const PriceImpact_js_1 = require("./PriceImpact.js");
40
- const SwapWidget = ({ fromToken, setFromToken, toToken, setToToken, defaultToAddress, defaultAmount, defaultTradeType, slippageTolerance, onOpenSlippageConfig, lockToToken = false, lockFromToken = false, lockChainId, singleChainMode = false, wallet, multiWalletSupportEnabled = false, linkedWallets, supportedWalletVMs, disableInputAutoFocus = false, popularChainIds, disablePasteWalletAddressOption, useSecureBaseUrl, onSetPrimaryWallet, onLinkNewWallet, onFromTokenChange, onToTokenChange, onConnectWallet, onAnalyticEvent: _onAnalyticEvent, onSwapSuccess, onSwapValidating, onSwapError }) => {
40
+ const SwapWidget = ({ fromToken, setFromToken, toToken, setToToken, defaultToAddress, defaultAmount, defaultTradeType, slippageTolerance, onOpenSlippageConfig, lockToToken = false, lockFromToken = false, lockChainId, singleChainMode = false, wallet, multiWalletSupportEnabled = false, linkedWallets, supportedWalletVMs, disableInputAutoFocus = false, popularChainIds, disablePasteWalletAddressOption, onSetPrimaryWallet, onLinkNewWallet, onFromTokenChange, onToTokenChange, onConnectWallet, onAnalyticEvent: _onAnalyticEvent, onSwapSuccess, onSwapValidating, onSwapError }) => {
41
41
  const onAnalyticEvent = (0, react_1.useCallback)((eventName, data) => {
42
42
  try {
43
43
  _onAnalyticEvent?.(eventName, data);
@@ -77,7 +77,7 @@ const SwapWidget = ({ fromToken, setFromToken, toToken, setToToken, defaultToAdd
77
77
  }
78
78
  }
79
79
  }, [fromToken, toToken]);
80
- return ((0, jsx_runtime_1.jsx)(SwapWidgetRenderer_js_1.default, { context: "Swap", transactionModalOpen: transactionModalOpen, setTransactionModalOpen: setTransactionModalOpen, depositAddressModalOpen: depositAddressModalOpen, defaultAmount: defaultAmount, defaultToAddress: defaultToAddress, defaultTradeType: defaultTradeType, toToken: toToken, setToToken: setToToken, fromToken: fromToken, setFromToken: setFromToken, slippageTolerance: slippageTolerance, wallet: wallet, linkedWallets: linkedWallets, multiWalletSupportEnabled: multiWalletSupportEnabled, onSwapError: onSwapError, onAnalyticEvent: onAnalyticEvent, supportedWalletVMs: supportedWalletVMs, useSecureBaseUrl: useSecureBaseUrl, children: ({ quote, steps, swap, setSteps, feeBreakdown, fromToken, setFromToken, toToken, setToToken, error, toDisplayName, address, recipient, customToAddress, setCustomToAddress, tradeType, setTradeType, isSameCurrencySameRecipientSwap, debouncedInputAmountValue, debouncedAmountInputControls, setAmountInputValue, amountInputValue, amountOutputValue, debouncedOutputAmountValue, debouncedAmountOutputControls, setAmountOutputValue, toBalance, toBalancePending, isLoadingToBalance, isFetchingQuote, isLoadingFromBalance, fromBalance, fromBalancePending, highRelayerServiceFee, relayerFeeProportion, hasInsufficientBalance, isInsufficientLiquidityError, isCapacityExceededError, isCouldNotExecuteError, ctaCopy, isFromNative, timeEstimate, isSvmSwap, isBvmSwap, isValidFromAddress, isValidToAddress, slippageTolerance, fromChainWalletVMSupported, toChainWalletVMSupported, isRecipientLinked, swapError, recipientWalletSupportsChain, gasTopUpEnabled, setGasTopUpEnabled, gasTopUpRequired, gasTopUpBalance, gasTopUpAmount, gasTopUpAmountUsd, linkedWallet, quoteParameters, setSwapError, invalidateBalanceQueries, invalidateQuoteQuery, quoteInProgress, setQuoteInProgress, abortController, fromTokenPriceData, toTokenPriceData, isLoadingFromTokenPrice, isLoadingToTokenPrice }) => {
80
+ return ((0, jsx_runtime_1.jsx)(SwapWidgetRenderer_js_1.default, { context: "Swap", transactionModalOpen: transactionModalOpen, setTransactionModalOpen: setTransactionModalOpen, depositAddressModalOpen: depositAddressModalOpen, defaultAmount: defaultAmount, defaultToAddress: defaultToAddress, defaultTradeType: defaultTradeType, toToken: toToken, setToToken: setToToken, fromToken: fromToken, setFromToken: setFromToken, slippageTolerance: slippageTolerance, wallet: wallet, linkedWallets: linkedWallets, multiWalletSupportEnabled: multiWalletSupportEnabled, onSwapError: onSwapError, onAnalyticEvent: onAnalyticEvent, supportedWalletVMs: supportedWalletVMs, children: ({ quote, steps, swap, setSteps, feeBreakdown, fromToken, setFromToken, toToken, setToToken, error, toDisplayName, address, recipient, customToAddress, setCustomToAddress, tradeType, setTradeType, isSameCurrencySameRecipientSwap, debouncedInputAmountValue, debouncedAmountInputControls, setAmountInputValue, amountInputValue, amountOutputValue, debouncedOutputAmountValue, debouncedAmountOutputControls, setAmountOutputValue, toBalance, toBalancePending, isLoadingToBalance, isFetchingQuote, isLoadingFromBalance, fromBalance, fromBalancePending, highRelayerServiceFee, relayerFeeProportion, hasInsufficientBalance, isInsufficientLiquidityError, isCapacityExceededError, isCouldNotExecuteError, ctaCopy, isFromNative, timeEstimate, isSvmSwap, isBvmSwap, isValidFromAddress, isValidToAddress, slippageTolerance, fromChainWalletVMSupported, toChainWalletVMSupported, isRecipientLinked, swapError, recipientWalletSupportsChain, gasTopUpEnabled, setGasTopUpEnabled, gasTopUpRequired, gasTopUpBalance, gasTopUpAmount, gasTopUpAmountUsd, linkedWallet, quoteParameters, setSwapError, invalidateBalanceQueries, invalidateQuoteQuery, quoteInProgress, setQuoteInProgress, abortController, fromTokenPriceData, toTokenPriceData, isLoadingFromTokenPrice, isLoadingToTokenPrice }) => {
81
81
  const inputAmountUsd = (0, react_1.useMemo)(() => {
82
82
  return (0, quote_js_1.calculateUsdValue)(fromTokenPriceData?.price, amountInputValue);
83
83
  }, [fromTokenPriceData, amountInputValue]);
@@ -481,9 +481,9 @@ const SwapWidget = ({ fromToken, setFromToken, toToken, setToToken, defaultToAdd
481
481
  address !== relay_sdk_1.tronDeadAddress &&
482
482
  address !== undefined, pending: fromBalancePending })) : ((0, jsx_runtime_1.jsx)(index_js_1.Flex, { className: "relay:h-[18px]" })), fromBalance &&
483
483
  (fromChain?.vmType === 'evm' ||
484
- 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: nativeMaxAmount_js_1.getFeeBufferAmount, fromChain: fromChain, publicClient: publicClient, isFromNative: isFromNative, variant: "desktop" }) })) : null] })] }), fromBalance &&
484
+ 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 &&
485
485
  (fromChain?.vmType === 'evm' ||
486
- fromChain?.vmType === 'svm') ? ((0, jsx_runtime_1.jsx)(index_js_1.Box, { className: "relay:block relay:sm:hidden", children: (0, jsx_runtime_1.jsx)(PercentageButtons_js_1.PercentageButtons, { balance: fromBalance, onPercentageClick: handleMaxAmountClicked, getFeeBufferAmount: nativeMaxAmount_js_1.getFeeBufferAmount, fromChain: fromChain, publicClient: publicClient, isFromNative: isFromNative, variant: "mobile" }) })) : null] })] }), (0, jsx_runtime_1.jsx)(index_js_1.Box, { className: "relay:relative relay:my-[-13px] relay:mx-auto relay:h-[32px] relay:w-[32px]", children: hasLockedToken ||
486
+ fromChain?.vmType === 'svm') ? ((0, jsx_runtime_1.jsx)(index_js_1.Box, { className: "relay:block relay:sm:hidden", 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: "mobile" }) })) : null] })] }), (0, jsx_runtime_1.jsx)(index_js_1.Box, { className: "relay:relative relay:my-[-13px] relay:mx-auto relay:h-[32px] relay:w-[32px]", children: hasLockedToken ||
487
487
  ((isSvmSwap || isBvmSwap) &&
488
488
  !multiWalletSupportEnabled) ? null : ((0, jsx_runtime_1.jsx)(index_js_1.Button, { "aria-label": "Swap Tokens Direction", size: "none", color: "white", className: "relay:mt-[4px] relay:text-[color:var(--relay-colors-gray9)] relay:self-center relay:justify-center relay:w-full relay:h-full relay:z-10 relay:border-[length:var(--relay-borders-widget-swap-currency-button-border-width)] relay:border-solid relay:!border-[color:var(--relay-colors-widget-swap-currency-button-border-color)] relay:rounded-swap-btn relay:hover:text-[color:var(--relay-colors-gray11)] relay:hover:bg-[var(--relay-colors-gray-2)]", onClick: () => {
489
489
  haptic('light');