@relayprotocol/relay-kit-ui 2.17.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/_cjs/package.json +1 -0
- package/_cjs/src/components/common/AmountInput.js +42 -0
- package/_cjs/src/components/common/AmountInput.js.map +1 -0
- package/_cjs/src/components/common/BalanceDisplay.js +18 -0
- package/_cjs/src/components/common/BalanceDisplay.js.map +1 -0
- package/_cjs/src/components/common/CopyToClipBoard.js +36 -0
- package/_cjs/src/components/common/CopyToClipBoard.js.map +1 -0
- package/_cjs/src/components/common/CustomAddressModal.js +105 -0
- package/_cjs/src/components/common/CustomAddressModal.js.map +1 -0
- package/_cjs/src/components/common/ErrorWell.js +41 -0
- package/_cjs/src/components/common/ErrorWell.js.map +1 -0
- package/_cjs/src/components/common/LoadingSpinner.js +19 -0
- package/_cjs/src/components/common/LoadingSpinner.js.map +1 -0
- package/_cjs/src/components/common/Modal.js +34 -0
- package/_cjs/src/components/common/Modal.js.map +1 -0
- package/_cjs/src/components/common/MultiWalletDropdown.js +148 -0
- package/_cjs/src/components/common/MultiWalletDropdown.js.map +1 -0
- package/_cjs/src/components/common/RefundReason.js +52 -0
- package/_cjs/src/components/common/RefundReason.js.map +1 -0
- package/_cjs/src/components/common/SlippageToleranceConfig.js +143 -0
- package/_cjs/src/components/common/SlippageToleranceConfig.js.map +1 -0
- package/_cjs/src/components/common/TokenSelector/ChainFilter.js +119 -0
- package/_cjs/src/components/common/TokenSelector/ChainFilter.js.map +1 -0
- package/_cjs/src/components/common/TokenSelector/ChainFilterSidebar.js +150 -0
- package/_cjs/src/components/common/TokenSelector/ChainFilterSidebar.js.map +1 -0
- package/_cjs/src/components/common/TokenSelector/SuggestedTokens.js +67 -0
- package/_cjs/src/components/common/TokenSelector/SuggestedTokens.js.map +1 -0
- package/_cjs/src/components/common/TokenSelector/TagPill.js +18 -0
- package/_cjs/src/components/common/TokenSelector/TagPill.js.map +1 -0
- package/_cjs/src/components/common/TokenSelector/TokenList.js +83 -0
- package/_cjs/src/components/common/TokenSelector/TokenList.js.map +1 -0
- package/_cjs/src/components/common/TokenSelector/TokenSelector.js +402 -0
- package/_cjs/src/components/common/TokenSelector/TokenSelector.js.map +1 -0
- package/_cjs/src/components/common/TokenSelector/triggers/TokenTrigger.js +42 -0
- package/_cjs/src/components/common/TokenSelector/triggers/TokenTrigger.js.map +1 -0
- package/_cjs/src/components/common/TransactionModal/DepositAddressModal.js +85 -0
- package/_cjs/src/components/common/TransactionModal/DepositAddressModal.js.map +1 -0
- package/_cjs/src/components/common/TransactionModal/DepositAddressModalRenderer.js +247 -0
- package/_cjs/src/components/common/TransactionModal/DepositAddressModalRenderer.js.map +1 -0
- package/_cjs/src/components/common/TransactionModal/TransactionModal.js +121 -0
- package/_cjs/src/components/common/TransactionModal/TransactionModal.js.map +1 -0
- package/_cjs/src/components/common/TransactionModal/TransactionModalRenderer.js +136 -0
- package/_cjs/src/components/common/TransactionModal/TransactionModalRenderer.js.map +1 -0
- package/_cjs/src/components/common/TransactionModal/steps/ApprovalPlusSwapStep.js +80 -0
- package/_cjs/src/components/common/TransactionModal/steps/ApprovalPlusSwapStep.js.map +1 -0
- package/_cjs/src/components/common/TransactionModal/steps/DepositAddressValidatingStep.js +21 -0
- package/_cjs/src/components/common/TransactionModal/steps/DepositAddressValidatingStep.js.map +1 -0
- package/_cjs/src/components/common/TransactionModal/steps/ErrorStep.js +82 -0
- package/_cjs/src/components/common/TransactionModal/steps/ErrorStep.js.map +1 -0
- package/_cjs/src/components/common/TransactionModal/steps/SwapConfirmationStep.js +117 -0
- package/_cjs/src/components/common/TransactionModal/steps/SwapConfirmationStep.js.map +1 -0
- package/_cjs/src/components/common/TransactionModal/steps/SwapSuccessStep.js +131 -0
- package/_cjs/src/components/common/TransactionModal/steps/SwapSuccessStep.js.map +1 -0
- package/_cjs/src/components/common/TransactionModal/steps/TransactionsByChain.js +67 -0
- package/_cjs/src/components/common/TransactionModal/steps/TransactionsByChain.js.map +1 -0
- package/_cjs/src/components/common/TransactionModal/steps/WaitingForDepositStep.js +86 -0
- package/_cjs/src/components/common/TransactionModal/steps/WaitingForDepositStep.js.map +1 -0
- package/_cjs/src/components/common/UnverifiedTokenModal.js +75 -0
- package/_cjs/src/components/common/UnverifiedTokenModal.js.map +1 -0
- package/_cjs/src/components/primitives/AccessibleList.js +33 -0
- package/_cjs/src/components/primitives/AccessibleList.js.map +1 -0
- package/_cjs/src/components/primitives/Anchor.js +57 -0
- package/_cjs/src/components/primitives/Anchor.js.map +1 -0
- package/_cjs/src/components/primitives/Box.js +10 -0
- package/_cjs/src/components/primitives/Box.js.map +1 -0
- package/_cjs/src/components/primitives/Button.js +155 -0
- package/_cjs/src/components/primitives/Button.js.map +1 -0
- package/_cjs/src/components/primitives/ChainIcon.js +35 -0
- package/_cjs/src/components/primitives/ChainIcon.js.map +1 -0
- package/_cjs/src/components/primitives/ChainTokenIcon.js +54 -0
- package/_cjs/src/components/primitives/ChainTokenIcon.js.map +1 -0
- package/_cjs/src/components/primitives/Collapsible.js +46 -0
- package/_cjs/src/components/primitives/Collapsible.js.map +1 -0
- package/_cjs/src/components/primitives/Dialog.js +104 -0
- package/_cjs/src/components/primitives/Dialog.js.map +1 -0
- package/_cjs/src/components/primitives/Dropdown.js +55 -0
- package/_cjs/src/components/primitives/Dropdown.js.map +1 -0
- package/_cjs/src/components/primitives/Flex.js +76 -0
- package/_cjs/src/components/primitives/Flex.js.map +1 -0
- package/_cjs/src/components/primitives/Input.js +69 -0
- package/_cjs/src/components/primitives/Input.js.map +1 -0
- package/_cjs/src/components/primitives/Pill.js +64 -0
- package/_cjs/src/components/primitives/Pill.js.map +1 -0
- package/_cjs/src/components/primitives/Skeleton.js +18 -0
- package/_cjs/src/components/primitives/Skeleton.js.map +1 -0
- package/_cjs/src/components/primitives/Switch.js +53 -0
- package/_cjs/src/components/primitives/Switch.js.map +1 -0
- package/_cjs/src/components/primitives/Tabs.js +53 -0
- package/_cjs/src/components/primitives/Tabs.js.map +1 -0
- package/_cjs/src/components/primitives/Text.js +106 -0
- package/_cjs/src/components/primitives/Text.js.map +1 -0
- package/_cjs/src/components/primitives/Tooltip.js +44 -0
- package/_cjs/src/components/primitives/Tooltip.js.map +1 -0
- package/_cjs/src/components/primitives/index.js +31 -0
- package/_cjs/src/components/primitives/index.js.map +1 -0
- package/_cjs/src/components/widgets/FeeBreakdown.js +165 -0
- package/_cjs/src/components/widgets/FeeBreakdown.js.map +1 -0
- package/_cjs/src/components/widgets/FetchingQuoteLoader.js +20 -0
- package/_cjs/src/components/widgets/FetchingQuoteLoader.js.map +1 -0
- package/_cjs/src/components/widgets/OnrampWidget/index.js +9 -0
- package/_cjs/src/components/widgets/OnrampWidget/index.js.map +1 -0
- package/_cjs/src/components/widgets/OnrampWidget/modals/OnrampModal.js +286 -0
- package/_cjs/src/components/widgets/OnrampWidget/modals/OnrampModal.js.map +1 -0
- package/_cjs/src/components/widgets/OnrampWidget/modals/steps/OnrampConfirmingStep.js +42 -0
- package/_cjs/src/components/widgets/OnrampWidget/modals/steps/OnrampConfirmingStep.js.map +1 -0
- package/_cjs/src/components/widgets/OnrampWidget/modals/steps/OnrampMoonPayStep.js +203 -0
- package/_cjs/src/components/widgets/OnrampWidget/modals/steps/OnrampMoonPayStep.js.map +1 -0
- package/_cjs/src/components/widgets/OnrampWidget/modals/steps/OnrampProcessingPassthroughStep.js +45 -0
- package/_cjs/src/components/widgets/OnrampWidget/modals/steps/OnrampProcessingPassthroughStep.js.map +1 -0
- package/_cjs/src/components/widgets/OnrampWidget/modals/steps/OnrampProcessingStepUI.js +87 -0
- package/_cjs/src/components/widgets/OnrampWidget/modals/steps/OnrampProcessingStepUI.js.map +1 -0
- package/_cjs/src/components/widgets/OnrampWidget/modals/steps/OnrampSuccessStep.js +39 -0
- package/_cjs/src/components/widgets/OnrampWidget/modals/steps/OnrampSuccessStep.js.map +1 -0
- package/_cjs/src/components/widgets/OnrampWidget/widget/FiatCurrencyModal.js +171 -0
- package/_cjs/src/components/widgets/OnrampWidget/widget/FiatCurrencyModal.js.map +1 -0
- package/_cjs/src/components/widgets/OnrampWidget/widget/OnrampWidgetRenderer.js +197 -0
- package/_cjs/src/components/widgets/OnrampWidget/widget/OnrampWidgetRenderer.js.map +1 -0
- package/_cjs/src/components/widgets/OnrampWidget/widget/index.js +332 -0
- package/_cjs/src/components/widgets/OnrampWidget/widget/index.js.map +1 -0
- package/_cjs/src/components/widgets/PriceImpactTooltip.js +28 -0
- package/_cjs/src/components/widgets/PriceImpactTooltip.js.map +1 -0
- package/_cjs/src/components/widgets/SwapButton.js +37 -0
- package/_cjs/src/components/widgets/SwapButton.js.map +1 -0
- package/_cjs/src/components/widgets/SwapRouteSelector.js +86 -0
- package/_cjs/src/components/widgets/SwapRouteSelector.js.map +1 -0
- package/_cjs/src/components/widgets/SwapWidget/GasTopUpSection.js +24 -0
- package/_cjs/src/components/widgets/SwapWidget/GasTopUpSection.js.map +1 -0
- package/_cjs/src/components/widgets/SwapWidget/index.js +912 -0
- package/_cjs/src/components/widgets/SwapWidget/index.js.map +1 -0
- package/_cjs/src/components/widgets/SwapWidgetRenderer.js +735 -0
- package/_cjs/src/components/widgets/SwapWidgetRenderer.js.map +1 -0
- package/_cjs/src/components/widgets/TokenSelectorContainer.js +20 -0
- package/_cjs/src/components/widgets/TokenSelectorContainer.js.map +1 -0
- package/_cjs/src/components/widgets/WidgetContainer.js +27 -0
- package/_cjs/src/components/widgets/WidgetContainer.js.map +1 -0
- package/_cjs/src/components/widgets/WidgetErrorWell.js +148 -0
- package/_cjs/src/components/widgets/WidgetErrorWell.js.map +1 -0
- package/_cjs/src/components/widgets/WidgetFooter.js +34 -0
- package/_cjs/src/components/widgets/WidgetFooter.js.map +1 -0
- package/_cjs/src/constants/address.js +15 -0
- package/_cjs/src/constants/address.js.map +1 -0
- package/_cjs/src/constants/agwRegistryAbi.js +20 -0
- package/_cjs/src/constants/agwRegistryAbi.js.map +1 -0
- package/_cjs/src/constants/cache.js +6 -0
- package/_cjs/src/constants/cache.js.map +1 -0
- package/_cjs/src/constants/chainIdToAlchemyNetworkMap.js +13 -0
- package/_cjs/src/constants/chainIdToAlchemyNetworkMap.js.map +1 -0
- package/_cjs/src/constants/currencies.js +3 -0
- package/_cjs/src/constants/currencies.js.map +1 -0
- package/_cjs/src/constants/depositAddresses.js +14 -0
- package/_cjs/src/constants/depositAddresses.js.map +1 -0
- package/_cjs/src/constants/events.js +62 -0
- package/_cjs/src/constants/events.js.map +1 -0
- package/_cjs/src/constants/maxGasBuffer.js +12 -0
- package/_cjs/src/constants/maxGasBuffer.js.map +1 -0
- package/_cjs/src/constants/moonPayCurrencies.js +295 -0
- package/_cjs/src/constants/moonPayCurrencies.js.map +1 -0
- package/_cjs/src/constants/moonPayFiatCurrencies.js +209 -0
- package/_cjs/src/constants/moonPayFiatCurrencies.js.map +1 -0
- package/_cjs/src/constants/walletCompatibility.js +23 -0
- package/_cjs/src/constants/walletCompatibility.js.map +1 -0
- package/_cjs/src/hooks/index.js +51 -0
- package/_cjs/src/hooks/index.js.map +1 -0
- package/_cjs/src/hooks/useAdaptedWalletBalance.js +28 -0
- package/_cjs/src/hooks/useAdaptedWalletBalance.js.map +1 -0
- package/_cjs/src/hooks/useAtomicBatchSupport.js +34 -0
- package/_cjs/src/hooks/useAtomicBatchSupport.js.map +1 -0
- package/_cjs/src/hooks/useBitcoinBalance.js +40 -0
- package/_cjs/src/hooks/useBitcoinBalance.js.map +1 -0
- package/_cjs/src/hooks/useCexAddresses.js +21 -0
- package/_cjs/src/hooks/useCexAddresses.js.map +1 -0
- package/_cjs/src/hooks/useCurrencyBalance.js +234 -0
- package/_cjs/src/hooks/useCurrencyBalance.js.map +1 -0
- package/_cjs/src/hooks/useDebounceState.js +35 -0
- package/_cjs/src/hooks/useDebounceState.js.map +1 -0
- package/_cjs/src/hooks/useDisconnected.js +14 -0
- package/_cjs/src/hooks/useDisconnected.js.map +1 -0
- package/_cjs/src/hooks/useDuneBalances.js +99 -0
- package/_cjs/src/hooks/useDuneBalances.js.map +1 -0
- package/_cjs/src/hooks/useENSResolver.js +37 -0
- package/_cjs/src/hooks/useENSResolver.js.map +1 -0
- package/_cjs/src/hooks/useEclipseBalance.js +47 -0
- package/_cjs/src/hooks/useEclipseBalance.js.map +1 -0
- package/_cjs/src/hooks/useEnhancedTokensList.js +80 -0
- package/_cjs/src/hooks/useEnhancedTokensList.js.map +1 -0
- package/_cjs/src/hooks/useFallbackState.js +12 -0
- package/_cjs/src/hooks/useFallbackState.js.map +1 -0
- package/_cjs/src/hooks/useGasTopUpRequired.js +59 -0
- package/_cjs/src/hooks/useGasTopUpRequired.js.map +1 -0
- package/_cjs/src/hooks/useHyperliquidUsdcBalance.js +37 -0
- package/_cjs/src/hooks/useHyperliquidUsdcBalance.js.map +1 -0
- package/_cjs/src/hooks/useInternalRelayChains.js +23 -0
- package/_cjs/src/hooks/useInternalRelayChains.js.map +1 -0
- package/_cjs/src/hooks/useIpAddress.js +12 -0
- package/_cjs/src/hooks/useIpAddress.js.map +1 -0
- package/_cjs/src/hooks/useIsAGW.js +34 -0
- package/_cjs/src/hooks/useIsAGW.js.map +1 -0
- package/_cjs/src/hooks/useIsPassthrough.js +56 -0
- package/_cjs/src/hooks/useIsPassthrough.js.map +1 -0
- package/_cjs/src/hooks/useIsWalletCompatible.js +42 -0
- package/_cjs/src/hooks/useIsWalletCompatible.js.map +1 -0
- package/_cjs/src/hooks/useMoonPayCurrencies.js +23 -0
- package/_cjs/src/hooks/useMoonPayCurrencies.js.map +1 -0
- package/_cjs/src/hooks/useMoonPayGeolocation.js +25 -0
- package/_cjs/src/hooks/useMoonPayGeolocation.js.map +1 -0
- package/_cjs/src/hooks/useMoonPayTransaction.js +25 -0
- package/_cjs/src/hooks/useMoonPayTransaction.js.map +1 -0
- package/_cjs/src/hooks/useMounted.js +11 -0
- package/_cjs/src/hooks/useMounted.js.map +1 -0
- package/_cjs/src/hooks/usePreviousValueChange.js +14 -0
- package/_cjs/src/hooks/usePreviousValueChange.js.map +1 -0
- package/_cjs/src/hooks/useRelayClient.js +9 -0
- package/_cjs/src/hooks/useRelayClient.js.map +1 -0
- package/_cjs/src/hooks/useSuiBalance.js +48 -0
- package/_cjs/src/hooks/useSuiBalance.js.map +1 -0
- package/_cjs/src/hooks/useSupportedMoonPayCurrencyCode.js +65 -0
- package/_cjs/src/hooks/useSupportedMoonPayCurrencyCode.js.map +1 -0
- package/_cjs/src/hooks/useWalletAddress.js +23 -0
- package/_cjs/src/hooks/useWalletAddress.js.map +1 -0
- package/_cjs/src/hooks/widget/useSwapButtonCta.js +76 -0
- package/_cjs/src/hooks/widget/useSwapButtonCta.js.map +1 -0
- package/_cjs/src/icons/SwitchIcon.js +9 -0
- package/_cjs/src/icons/SwitchIcon.js.map +1 -0
- package/_cjs/src/icons/index.js +6 -0
- package/_cjs/src/icons/index.js.map +1 -0
- package/_cjs/src/img/AllChainsLogo.js +10 -0
- package/_cjs/src/img/AllChainsLogo.js.map +1 -0
- package/_cjs/src/img/MoonPayLogo.js +10 -0
- package/_cjs/src/img/MoonPayLogo.js.map +1 -0
- package/_cjs/src/img/ReservoirText.js +10 -0
- package/_cjs/src/img/ReservoirText.js.map +1 -0
- package/_cjs/src/index.js +23 -0
- package/_cjs/src/index.js.map +1 -0
- package/_cjs/src/providers/RelayClientProvider.js +14 -0
- package/_cjs/src/providers/RelayClientProvider.js.map +1 -0
- package/_cjs/src/providers/RelayKitProvider.js +123 -0
- package/_cjs/src/providers/RelayKitProvider.js.map +1 -0
- package/_cjs/src/styles.css +3408 -0
- package/_cjs/src/themes/RelayKitTheme.js +89 -0
- package/_cjs/src/themes/RelayKitTheme.js.map +1 -0
- package/_cjs/src/themes/index.js +6 -0
- package/_cjs/src/themes/index.js.map +1 -0
- package/_cjs/src/types/BridgeFee.js +3 -0
- package/_cjs/src/types/BridgeFee.js.map +1 -0
- package/_cjs/src/types/Fiat.js +3 -0
- package/_cjs/src/types/Fiat.js.map +1 -0
- package/_cjs/src/types/RelayTransaction.js +3 -0
- package/_cjs/src/types/RelayTransaction.js.map +1 -0
- package/_cjs/src/types/index.js +3 -0
- package/_cjs/src/types/index.js.map +1 -0
- package/_cjs/src/utils/address.js +75 -0
- package/_cjs/src/utils/address.js.map +1 -0
- package/_cjs/src/utils/bitcoin.js +12 -0
- package/_cjs/src/utils/bitcoin.js.map +1 -0
- package/_cjs/src/utils/browser.js +8 -0
- package/_cjs/src/utils/browser.js.map +1 -0
- package/_cjs/src/utils/ens.js +9 -0
- package/_cjs/src/utils/ens.js.map +1 -0
- package/_cjs/src/utils/errors.js +38 -0
- package/_cjs/src/utils/errors.js.map +1 -0
- package/_cjs/src/utils/fetcher.js +20 -0
- package/_cjs/src/utils/fetcher.js.map +1 -0
- package/_cjs/src/utils/getChainBlockExplorerUrl.js +12 -0
- package/_cjs/src/utils/getChainBlockExplorerUrl.js.map +1 -0
- package/_cjs/src/utils/getTxBlockExplorerUrl.js +28 -0
- package/_cjs/src/utils/getTxBlockExplorerUrl.js.map +1 -0
- package/_cjs/src/utils/hashing.js +41 -0
- package/_cjs/src/utils/hashing.js.map +1 -0
- package/_cjs/src/utils/localStorage.js +84 -0
- package/_cjs/src/utils/localStorage.js.map +1 -0
- package/_cjs/src/utils/moonPay.js +49 -0
- package/_cjs/src/utils/moonPay.js.map +1 -0
- package/_cjs/src/utils/nativeMaxAmount.js +137 -0
- package/_cjs/src/utils/nativeMaxAmount.js.map +1 -0
- package/_cjs/src/utils/numbers.js +171 -0
- package/_cjs/src/utils/numbers.js.map +1 -0
- package/_cjs/src/utils/qrcode.js +23 -0
- package/_cjs/src/utils/qrcode.js.map +1 -0
- package/_cjs/src/utils/quote.js +262 -0
- package/_cjs/src/utils/quote.js.map +1 -0
- package/_cjs/src/utils/relayTransaction.js +85 -0
- package/_cjs/src/utils/relayTransaction.js.map +1 -0
- package/_cjs/src/utils/slippage.js +18 -0
- package/_cjs/src/utils/slippage.js.map +1 -0
- package/_cjs/src/utils/solana.js +16 -0
- package/_cjs/src/utils/solana.js.map +1 -0
- package/_cjs/src/utils/steps.js +87 -0
- package/_cjs/src/utils/steps.js.map +1 -0
- package/_cjs/src/utils/sui.js +15 -0
- package/_cjs/src/utils/sui.js.map +1 -0
- package/_cjs/src/utils/theme.js +40 -0
- package/_cjs/src/utils/theme.js.map +1 -0
- package/_cjs/src/utils/time.js +36 -0
- package/_cjs/src/utils/time.js.map +1 -0
- package/_cjs/src/utils/titleCase.js +9 -0
- package/_cjs/src/utils/titleCase.js.map +1 -0
- package/_cjs/src/utils/tokenSelector.js +81 -0
- package/_cjs/src/utils/tokenSelector.js.map +1 -0
- package/_cjs/src/utils/tokens.js +56 -0
- package/_cjs/src/utils/tokens.js.map +1 -0
- package/_cjs/src/utils/tron.js +12 -0
- package/_cjs/src/utils/tron.js.map +1 -0
- package/_cjs/src/utils/truncate.js +18 -0
- package/_cjs/src/utils/truncate.js.map +1 -0
- package/_cjs/src/version.js +5 -0
- package/_cjs/src/version.js.map +1 -0
- package/_cjs/tsconfig.build.tsbuildinfo +1 -0
- package/_esm/package.json +1 -0
- package/_esm/src/components/common/AmountInput.js +43 -0
- package/_esm/src/components/common/AmountInput.js.map +1 -0
- package/_esm/src/components/common/BalanceDisplay.js +15 -0
- package/_esm/src/components/common/BalanceDisplay.js.map +1 -0
- package/_esm/src/components/common/CopyToClipBoard.js +31 -0
- package/_esm/src/components/common/CopyToClipBoard.js.map +1 -0
- package/_esm/src/components/common/CustomAddressModal.js +102 -0
- package/_esm/src/components/common/CustomAddressModal.js.map +1 -0
- package/_esm/src/components/common/ErrorWell.js +38 -0
- package/_esm/src/components/common/ErrorWell.js.map +1 -0
- package/_esm/src/components/common/LoadingSpinner.js +15 -0
- package/_esm/src/components/common/LoadingSpinner.js.map +1 -0
- package/_esm/src/components/common/Modal.js +30 -0
- package/_esm/src/components/common/Modal.js.map +1 -0
- package/_esm/src/components/common/MultiWalletDropdown.js +144 -0
- package/_esm/src/components/common/MultiWalletDropdown.js.map +1 -0
- package/_esm/src/components/common/RefundReason.js +49 -0
- package/_esm/src/components/common/RefundReason.js.map +1 -0
- package/_esm/src/components/common/SlippageToleranceConfig.js +143 -0
- package/_esm/src/components/common/SlippageToleranceConfig.js.map +1 -0
- package/_esm/src/components/common/TokenSelector/ChainFilter.js +116 -0
- package/_esm/src/components/common/TokenSelector/ChainFilter.js.map +1 -0
- package/_esm/src/components/common/TokenSelector/ChainFilterSidebar.js +150 -0
- package/_esm/src/components/common/TokenSelector/ChainFilterSidebar.js.map +1 -0
- package/_esm/src/components/common/TokenSelector/SuggestedTokens.js +63 -0
- package/_esm/src/components/common/TokenSelector/SuggestedTokens.js.map +1 -0
- package/_esm/src/components/common/TokenSelector/TagPill.js +15 -0
- package/_esm/src/components/common/TokenSelector/TagPill.js.map +1 -0
- package/_esm/src/components/common/TokenSelector/TokenList.js +79 -0
- package/_esm/src/components/common/TokenSelector/TokenList.js.map +1 -0
- package/_esm/src/components/common/TokenSelector/TokenSelector.js +411 -0
- package/_esm/src/components/common/TokenSelector/TokenSelector.js.map +1 -0
- package/_esm/src/components/common/TokenSelector/triggers/TokenTrigger.js +37 -0
- package/_esm/src/components/common/TokenSelector/triggers/TokenTrigger.js.map +1 -0
- package/_esm/src/components/common/TransactionModal/DepositAddressModal.js +83 -0
- package/_esm/src/components/common/TransactionModal/DepositAddressModal.js.map +1 -0
- package/_esm/src/components/common/TransactionModal/DepositAddressModalRenderer.js +245 -0
- package/_esm/src/components/common/TransactionModal/DepositAddressModalRenderer.js.map +1 -0
- package/_esm/src/components/common/TransactionModal/TransactionModal.js +120 -0
- package/_esm/src/components/common/TransactionModal/TransactionModal.js.map +1 -0
- package/_esm/src/components/common/TransactionModal/TransactionModalRenderer.js +135 -0
- package/_esm/src/components/common/TransactionModal/TransactionModalRenderer.js.map +1 -0
- package/_esm/src/components/common/TransactionModal/steps/ApprovalPlusSwapStep.js +77 -0
- package/_esm/src/components/common/TransactionModal/steps/ApprovalPlusSwapStep.js.map +1 -0
- package/_esm/src/components/common/TransactionModal/steps/DepositAddressValidatingStep.js +20 -0
- package/_esm/src/components/common/TransactionModal/steps/DepositAddressValidatingStep.js.map +1 -0
- package/_esm/src/components/common/TransactionModal/steps/ErrorStep.js +80 -0
- package/_esm/src/components/common/TransactionModal/steps/ErrorStep.js.map +1 -0
- package/_esm/src/components/common/TransactionModal/steps/SwapConfirmationStep.js +112 -0
- package/_esm/src/components/common/TransactionModal/steps/SwapConfirmationStep.js.map +1 -0
- package/_esm/src/components/common/TransactionModal/steps/SwapSuccessStep.js +130 -0
- package/_esm/src/components/common/TransactionModal/steps/SwapSuccessStep.js.map +1 -0
- package/_esm/src/components/common/TransactionModal/steps/TransactionsByChain.js +64 -0
- package/_esm/src/components/common/TransactionModal/steps/TransactionsByChain.js.map +1 -0
- package/_esm/src/components/common/TransactionModal/steps/WaitingForDepositStep.js +84 -0
- package/_esm/src/components/common/TransactionModal/steps/WaitingForDepositStep.js.map +1 -0
- package/_esm/src/components/common/UnverifiedTokenModal.js +70 -0
- package/_esm/src/components/common/UnverifiedTokenModal.js.map +1 -0
- package/_esm/src/components/primitives/AccessibleList.js +28 -0
- package/_esm/src/components/primitives/AccessibleList.js.map +1 -0
- package/_esm/src/components/primitives/Anchor.js +53 -0
- package/_esm/src/components/primitives/Anchor.js.map +1 -0
- package/_esm/src/components/primitives/Box.js +8 -0
- package/_esm/src/components/primitives/Box.js.map +1 -0
- package/_esm/src/components/primitives/Button.js +153 -0
- package/_esm/src/components/primitives/Button.js.map +1 -0
- package/_esm/src/components/primitives/ChainIcon.js +32 -0
- package/_esm/src/components/primitives/ChainIcon.js.map +1 -0
- package/_esm/src/components/primitives/ChainTokenIcon.js +50 -0
- package/_esm/src/components/primitives/ChainTokenIcon.js.map +1 -0
- package/_esm/src/components/primitives/Collapsible.js +40 -0
- package/_esm/src/components/primitives/Collapsible.js.map +1 -0
- package/_esm/src/components/primitives/Dialog.js +97 -0
- package/_esm/src/components/primitives/Dialog.js.map +1 -0
- package/_esm/src/components/primitives/Dropdown.js +49 -0
- package/_esm/src/components/primitives/Dropdown.js.map +1 -0
- package/_esm/src/components/primitives/Flex.js +73 -0
- package/_esm/src/components/primitives/Flex.js.map +1 -0
- package/_esm/src/components/primitives/Input.js +66 -0
- package/_esm/src/components/primitives/Input.js.map +1 -0
- package/_esm/src/components/primitives/Pill.js +60 -0
- package/_esm/src/components/primitives/Pill.js.map +1 -0
- package/_esm/src/components/primitives/Skeleton.js +16 -0
- package/_esm/src/components/primitives/Skeleton.js.map +1 -0
- package/_esm/src/components/primitives/Switch.js +49 -0
- package/_esm/src/components/primitives/Switch.js.map +1 -0
- package/_esm/src/components/primitives/Tabs.js +46 -0
- package/_esm/src/components/primitives/Tabs.js.map +1 -0
- package/_esm/src/components/primitives/Text.js +104 -0
- package/_esm/src/components/primitives/Text.js.map +1 -0
- package/_esm/src/components/primitives/Tooltip.js +41 -0
- package/_esm/src/components/primitives/Tooltip.js.map +1 -0
- package/_esm/src/components/primitives/index.js +14 -0
- package/_esm/src/components/primitives/index.js.map +1 -0
- package/_esm/src/components/widgets/FeeBreakdown.js +162 -0
- package/_esm/src/components/widgets/FeeBreakdown.js.map +1 -0
- package/_esm/src/components/widgets/FetchingQuoteLoader.js +19 -0
- package/_esm/src/components/widgets/FetchingQuoteLoader.js.map +1 -0
- package/_esm/src/components/widgets/OnrampWidget/index.js +2 -0
- package/_esm/src/components/widgets/OnrampWidget/index.js.map +1 -0
- package/_esm/src/components/widgets/OnrampWidget/modals/OnrampModal.js +281 -0
- package/_esm/src/components/widgets/OnrampWidget/modals/OnrampModal.js.map +1 -0
- package/_esm/src/components/widgets/OnrampWidget/modals/steps/OnrampConfirmingStep.js +38 -0
- package/_esm/src/components/widgets/OnrampWidget/modals/steps/OnrampConfirmingStep.js.map +1 -0
- package/_esm/src/components/widgets/OnrampWidget/modals/steps/OnrampMoonPayStep.js +176 -0
- package/_esm/src/components/widgets/OnrampWidget/modals/steps/OnrampMoonPayStep.js.map +1 -0
- package/_esm/src/components/widgets/OnrampWidget/modals/steps/OnrampProcessingPassthroughStep.js +40 -0
- package/_esm/src/components/widgets/OnrampWidget/modals/steps/OnrampProcessingPassthroughStep.js.map +1 -0
- package/_esm/src/components/widgets/OnrampWidget/modals/steps/OnrampProcessingStepUI.js +83 -0
- package/_esm/src/components/widgets/OnrampWidget/modals/steps/OnrampProcessingStepUI.js.map +1 -0
- package/_esm/src/components/widgets/OnrampWidget/modals/steps/OnrampSuccessStep.js +35 -0
- package/_esm/src/components/widgets/OnrampWidget/modals/steps/OnrampSuccessStep.js.map +1 -0
- package/_esm/src/components/widgets/OnrampWidget/widget/FiatCurrencyModal.js +170 -0
- package/_esm/src/components/widgets/OnrampWidget/widget/FiatCurrencyModal.js.map +1 -0
- package/_esm/src/components/widgets/OnrampWidget/widget/OnrampWidgetRenderer.js +195 -0
- package/_esm/src/components/widgets/OnrampWidget/widget/OnrampWidgetRenderer.js.map +1 -0
- package/_esm/src/components/widgets/OnrampWidget/widget/index.js +332 -0
- package/_esm/src/components/widgets/OnrampWidget/widget/index.js.map +1 -0
- package/_esm/src/components/widgets/PriceImpactTooltip.js +23 -0
- package/_esm/src/components/widgets/PriceImpactTooltip.js.map +1 -0
- package/_esm/src/components/widgets/SwapButton.js +36 -0
- package/_esm/src/components/widgets/SwapButton.js.map +1 -0
- package/_esm/src/components/widgets/SwapRouteSelector.js +84 -0
- package/_esm/src/components/widgets/SwapRouteSelector.js.map +1 -0
- package/_esm/src/components/widgets/SwapWidget/GasTopUpSection.js +23 -0
- package/_esm/src/components/widgets/SwapWidget/GasTopUpSection.js.map +1 -0
- package/_esm/src/components/widgets/SwapWidget/index.js +955 -0
- package/_esm/src/components/widgets/SwapWidget/index.js.map +1 -0
- package/_esm/src/components/widgets/SwapWidgetRenderer.js +754 -0
- package/_esm/src/components/widgets/SwapWidgetRenderer.js.map +1 -0
- package/_esm/src/components/widgets/TokenSelectorContainer.js +20 -0
- package/_esm/src/components/widgets/TokenSelectorContainer.js.map +1 -0
- package/_esm/src/components/widgets/WidgetContainer.js +26 -0
- package/_esm/src/components/widgets/WidgetContainer.js.map +1 -0
- package/_esm/src/components/widgets/WidgetErrorWell.js +153 -0
- package/_esm/src/components/widgets/WidgetErrorWell.js.map +1 -0
- package/_esm/src/components/widgets/WidgetFooter.js +31 -0
- package/_esm/src/components/widgets/WidgetFooter.js.map +1 -0
- package/_esm/src/constants/address.js +11 -0
- package/_esm/src/constants/address.js.map +1 -0
- package/_esm/src/constants/agwRegistryAbi.js +17 -0
- package/_esm/src/constants/agwRegistryAbi.js.map +1 -0
- package/_esm/src/constants/cache.js +3 -0
- package/_esm/src/constants/cache.js.map +1 -0
- package/_esm/src/constants/chainIdToAlchemyNetworkMap.js +11 -0
- package/_esm/src/constants/chainIdToAlchemyNetworkMap.js.map +1 -0
- package/_esm/src/constants/currencies.js +2 -0
- package/_esm/src/constants/currencies.js.map +1 -0
- package/_esm/src/constants/depositAddresses.js +11 -0
- package/_esm/src/constants/depositAddresses.js.map +1 -0
- package/_esm/src/constants/events.js +60 -0
- package/_esm/src/constants/events.js.map +1 -0
- package/_esm/src/constants/maxGasBuffer.js +9 -0
- package/_esm/src/constants/maxGasBuffer.js.map +1 -0
- package/_esm/src/constants/moonPayCurrencies.js +293 -0
- package/_esm/src/constants/moonPayCurrencies.js.map +1 -0
- package/_esm/src/constants/moonPayFiatCurrencies.js +207 -0
- package/_esm/src/constants/moonPayFiatCurrencies.js.map +1 -0
- package/_esm/src/constants/walletCompatibility.js +20 -0
- package/_esm/src/constants/walletCompatibility.js.map +1 -0
- package/_esm/src/hooks/index.js +25 -0
- package/_esm/src/hooks/index.js.map +1 -0
- package/_esm/src/hooks/useAdaptedWalletBalance.js +26 -0
- package/_esm/src/hooks/useAdaptedWalletBalance.js.map +1 -0
- package/_esm/src/hooks/useAtomicBatchSupport.js +33 -0
- package/_esm/src/hooks/useAtomicBatchSupport.js.map +1 -0
- package/_esm/src/hooks/useBitcoinBalance.js +38 -0
- package/_esm/src/hooks/useBitcoinBalance.js.map +1 -0
- package/_esm/src/hooks/useCexAddresses.js +19 -0
- package/_esm/src/hooks/useCexAddresses.js.map +1 -0
- package/_esm/src/hooks/useCurrencyBalance.js +232 -0
- package/_esm/src/hooks/useCurrencyBalance.js.map +1 -0
- package/_esm/src/hooks/useDebounceState.js +33 -0
- package/_esm/src/hooks/useDebounceState.js.map +1 -0
- package/_esm/src/hooks/useDisconnected.js +12 -0
- package/_esm/src/hooks/useDisconnected.js.map +1 -0
- package/_esm/src/hooks/useDuneBalances.js +98 -0
- package/_esm/src/hooks/useDuneBalances.js.map +1 -0
- package/_esm/src/hooks/useENSResolver.js +35 -0
- package/_esm/src/hooks/useENSResolver.js.map +1 -0
- package/_esm/src/hooks/useEclipseBalance.js +44 -0
- package/_esm/src/hooks/useEclipseBalance.js.map +1 -0
- package/_esm/src/hooks/useEnhancedTokensList.js +85 -0
- package/_esm/src/hooks/useEnhancedTokensList.js.map +1 -0
- package/_esm/src/hooks/useFallbackState.js +10 -0
- package/_esm/src/hooks/useFallbackState.js.map +1 -0
- package/_esm/src/hooks/useGasTopUpRequired.js +57 -0
- package/_esm/src/hooks/useGasTopUpRequired.js.map +1 -0
- package/_esm/src/hooks/useHyperliquidUsdcBalance.js +35 -0
- package/_esm/src/hooks/useHyperliquidUsdcBalance.js.map +1 -0
- package/_esm/src/hooks/useInternalRelayChains.js +19 -0
- package/_esm/src/hooks/useInternalRelayChains.js.map +1 -0
- package/_esm/src/hooks/useIpAddress.js +10 -0
- package/_esm/src/hooks/useIpAddress.js.map +1 -0
- package/_esm/src/hooks/useIsAGW.js +31 -0
- package/_esm/src/hooks/useIsAGW.js.map +1 -0
- package/_esm/src/hooks/useIsPassthrough.js +53 -0
- package/_esm/src/hooks/useIsPassthrough.js.map +1 -0
- package/_esm/src/hooks/useIsWalletCompatible.js +40 -0
- package/_esm/src/hooks/useIsWalletCompatible.js.map +1 -0
- package/_esm/src/hooks/useMoonPayCurrencies.js +21 -0
- package/_esm/src/hooks/useMoonPayCurrencies.js.map +1 -0
- package/_esm/src/hooks/useMoonPayGeolocation.js +23 -0
- package/_esm/src/hooks/useMoonPayGeolocation.js.map +1 -0
- package/_esm/src/hooks/useMoonPayTransaction.js +23 -0
- package/_esm/src/hooks/useMoonPayTransaction.js.map +1 -0
- package/_esm/src/hooks/useMounted.js +9 -0
- package/_esm/src/hooks/useMounted.js.map +1 -0
- package/_esm/src/hooks/usePreviousValueChange.js +12 -0
- package/_esm/src/hooks/usePreviousValueChange.js.map +1 -0
- package/_esm/src/hooks/useRelayClient.js +6 -0
- package/_esm/src/hooks/useRelayClient.js.map +1 -0
- package/_esm/src/hooks/useSuiBalance.js +45 -0
- package/_esm/src/hooks/useSuiBalance.js.map +1 -0
- package/_esm/src/hooks/useSupportedMoonPayCurrencyCode.js +61 -0
- package/_esm/src/hooks/useSupportedMoonPayCurrencyCode.js.map +1 -0
- package/_esm/src/hooks/useWalletAddress.js +20 -0
- package/_esm/src/hooks/useWalletAddress.js.map +1 -0
- package/_esm/src/hooks/widget/useSwapButtonCta.js +77 -0
- package/_esm/src/hooks/widget/useSwapButtonCta.js.map +1 -0
- package/_esm/src/icons/SwitchIcon.js +6 -0
- package/_esm/src/icons/SwitchIcon.js.map +1 -0
- package/_esm/src/icons/index.js +2 -0
- package/_esm/src/icons/index.js.map +1 -0
- package/_esm/src/img/AllChainsLogo.js +7 -0
- package/_esm/src/img/AllChainsLogo.js.map +1 -0
- package/_esm/src/img/MoonPayLogo.js +7 -0
- package/_esm/src/img/MoonPayLogo.js.map +1 -0
- package/_esm/src/img/ReservoirText.js +7 -0
- package/_esm/src/img/ReservoirText.js.map +1 -0
- package/_esm/src/index.js +13 -0
- package/_esm/src/index.js.map +1 -0
- package/_esm/src/providers/RelayClientProvider.js +10 -0
- package/_esm/src/providers/RelayClientProvider.js.map +1 -0
- package/_esm/src/providers/RelayKitProvider.js +120 -0
- package/_esm/src/providers/RelayKitProvider.js.map +1 -0
- package/_esm/src/styles.css +3408 -0
- package/_esm/src/themes/RelayKitTheme.js +86 -0
- package/_esm/src/themes/RelayKitTheme.js.map +1 -0
- package/_esm/src/themes/index.js +2 -0
- package/_esm/src/themes/index.js.map +1 -0
- package/_esm/src/types/BridgeFee.js +2 -0
- package/_esm/src/types/BridgeFee.js.map +1 -0
- package/_esm/src/types/Fiat.js +2 -0
- package/_esm/src/types/Fiat.js.map +1 -0
- package/_esm/src/types/RelayTransaction.js +2 -0
- package/_esm/src/types/RelayTransaction.js.map +1 -0
- package/_esm/src/types/index.js +2 -0
- package/_esm/src/types/index.js.map +1 -0
- package/_esm/src/utils/address.js +68 -0
- package/_esm/src/utils/address.js.map +1 -0
- package/_esm/src/utils/bitcoin.js +8 -0
- package/_esm/src/utils/bitcoin.js.map +1 -0
- package/_esm/src/utils/browser.js +4 -0
- package/_esm/src/utils/browser.js.map +1 -0
- package/_esm/src/utils/ens.js +5 -0
- package/_esm/src/utils/ens.js.map +1 -0
- package/_esm/src/utils/errors.js +36 -0
- package/_esm/src/utils/errors.js.map +1 -0
- package/_esm/src/utils/fetcher.js +15 -0
- package/_esm/src/utils/fetcher.js.map +1 -0
- package/_esm/src/utils/getChainBlockExplorerUrl.js +11 -0
- package/_esm/src/utils/getChainBlockExplorerUrl.js.map +1 -0
- package/_esm/src/utils/getTxBlockExplorerUrl.js +23 -0
- package/_esm/src/utils/getTxBlockExplorerUrl.js.map +1 -0
- package/_esm/src/utils/hashing.js +38 -0
- package/_esm/src/utils/hashing.js.map +1 -0
- package/_esm/src/utils/localStorage.js +93 -0
- package/_esm/src/utils/localStorage.js.map +1 -0
- package/_esm/src/utils/moonPay.js +44 -0
- package/_esm/src/utils/moonPay.js.map +1 -0
- package/_esm/src/utils/nativeMaxAmount.js +172 -0
- package/_esm/src/utils/nativeMaxAmount.js.map +1 -0
- package/_esm/src/utils/numbers.js +191 -0
- package/_esm/src/utils/numbers.js.map +1 -0
- package/_esm/src/utils/qrcode.js +19 -0
- package/_esm/src/utils/qrcode.js.map +1 -0
- package/_esm/src/utils/quote.js +248 -0
- package/_esm/src/utils/quote.js.map +1 -0
- package/_esm/src/utils/relayTransaction.js +80 -0
- package/_esm/src/utils/relayTransaction.js.map +1 -0
- package/_esm/src/utils/slippage.js +14 -0
- package/_esm/src/utils/slippage.js.map +1 -0
- package/_esm/src/utils/solana.js +12 -0
- package/_esm/src/utils/solana.js.map +1 -0
- package/_esm/src/utils/steps.js +102 -0
- package/_esm/src/utils/steps.js.map +1 -0
- package/_esm/src/utils/sui.js +11 -0
- package/_esm/src/utils/sui.js.map +1 -0
- package/_esm/src/utils/theme.js +37 -0
- package/_esm/src/utils/theme.js.map +1 -0
- package/_esm/src/utils/time.js +29 -0
- package/_esm/src/utils/time.js.map +1 -0
- package/_esm/src/utils/titleCase.js +12 -0
- package/_esm/src/utils/titleCase.js.map +1 -0
- package/_esm/src/utils/tokenSelector.js +79 -0
- package/_esm/src/utils/tokenSelector.js.map +1 -0
- package/_esm/src/utils/tokens.js +50 -0
- package/_esm/src/utils/tokens.js.map +1 -0
- package/_esm/src/utils/tron.js +8 -0
- package/_esm/src/utils/tron.js.map +1 -0
- package/_esm/src/utils/truncate.js +23 -0
- package/_esm/src/utils/truncate.js.map +1 -0
- package/_esm/src/version.js +2 -0
- package/_esm/src/version.js.map +1 -0
- package/_esm/tsconfig.build.tsbuildinfo +1 -0
- package/_types/src/components/common/AmountInput.d.ts +10 -0
- package/_types/src/components/common/AmountInput.d.ts.map +1 -0
- package/_types/src/components/common/BalanceDisplay.d.ts +14 -0
- package/_types/src/components/common/BalanceDisplay.d.ts.map +1 -0
- package/_types/src/components/common/CopyToClipBoard.d.ts +7 -0
- package/_types/src/components/common/CopyToClipBoard.d.ts.map +1 -0
- package/_types/src/components/common/CustomAddressModal.d.ts +22 -0
- package/_types/src/components/common/CustomAddressModal.d.ts.map +1 -0
- package/_types/src/components/common/ErrorWell.d.ts +11 -0
- package/_types/src/components/common/ErrorWell.d.ts.map +1 -0
- package/_types/src/components/common/LoadingSpinner.d.ts +6 -0
- package/_types/src/components/common/LoadingSpinner.d.ts.map +1 -0
- package/_types/src/components/common/Modal.d.ts +15 -0
- package/_types/src/components/common/Modal.d.ts.map +1 -0
- package/_types/src/components/common/MultiWalletDropdown.d.ts +17 -0
- package/_types/src/components/common/MultiWalletDropdown.d.ts.map +1 -0
- package/_types/src/components/common/RefundReason.d.ts +8 -0
- package/_types/src/components/common/RefundReason.d.ts.map +1 -0
- package/_types/src/components/common/SlippageToleranceConfig.d.ts +8 -0
- package/_types/src/components/common/SlippageToleranceConfig.d.ts.map +1 -0
- package/_types/src/components/common/TokenSelector/ChainFilter.d.ts +16 -0
- package/_types/src/components/common/TokenSelector/ChainFilter.d.ts.map +1 -0
- package/_types/src/components/common/TokenSelector/ChainFilterSidebar.d.ts +20 -0
- package/_types/src/components/common/TokenSelector/ChainFilterSidebar.d.ts.map +1 -0
- package/_types/src/components/common/TokenSelector/SuggestedTokens.d.ts +10 -0
- package/_types/src/components/common/TokenSelector/SuggestedTokens.d.ts.map +1 -0
- package/_types/src/components/common/TokenSelector/TagPill.d.ts +7 -0
- package/_types/src/components/common/TokenSelector/TagPill.d.ts.map +1 -0
- package/_types/src/components/common/TokenSelector/TokenList.d.ts +13 -0
- package/_types/src/components/common/TokenSelector/TokenList.d.ts.map +1 -0
- package/_types/src/components/common/TokenSelector/TokenSelector.d.ts +22 -0
- package/_types/src/components/common/TokenSelector/TokenSelector.d.ts.map +1 -0
- package/_types/src/components/common/TokenSelector/triggers/TokenTrigger.d.ts +11 -0
- package/_types/src/components/common/TokenSelector/triggers/TokenTrigger.d.ts.map +1 -0
- package/_types/src/components/common/TransactionModal/DepositAddressModal.d.ts +26 -0
- package/_types/src/components/common/TransactionModal/DepositAddressModal.d.ts.map +1 -0
- package/_types/src/components/common/TransactionModal/DepositAddressModalRenderer.d.ts +57 -0
- package/_types/src/components/common/TransactionModal/DepositAddressModalRenderer.d.ts.map +1 -0
- package/_types/src/components/common/TransactionModal/TransactionModal.d.ts +33 -0
- package/_types/src/components/common/TransactionModal/TransactionModal.d.ts.map +1 -0
- package/_types/src/components/common/TransactionModal/TransactionModalRenderer.d.ts +63 -0
- package/_types/src/components/common/TransactionModal/TransactionModalRenderer.d.ts.map +1 -0
- package/_types/src/components/common/TransactionModal/steps/ApprovalPlusSwapStep.d.ts +15 -0
- package/_types/src/components/common/TransactionModal/steps/ApprovalPlusSwapStep.d.ts.map +1 -0
- package/_types/src/components/common/TransactionModal/steps/DepositAddressValidatingStep.d.ts +9 -0
- package/_types/src/components/common/TransactionModal/steps/DepositAddressValidatingStep.d.ts.map +1 -0
- package/_types/src/components/common/TransactionModal/steps/ErrorStep.d.ts +17 -0
- package/_types/src/components/common/TransactionModal/steps/ErrorStep.d.ts.map +1 -0
- package/_types/src/components/common/TransactionModal/steps/SwapConfirmationStep.d.ts +30 -0
- package/_types/src/components/common/TransactionModal/steps/SwapConfirmationStep.d.ts.map +1 -0
- package/_types/src/components/common/TransactionModal/steps/SwapSuccessStep.d.ts +24 -0
- package/_types/src/components/common/TransactionModal/steps/SwapSuccessStep.d.ts.map +1 -0
- package/_types/src/components/common/TransactionModal/steps/TransactionsByChain.d.ts +14 -0
- package/_types/src/components/common/TransactionModal/steps/TransactionsByChain.d.ts.map +1 -0
- package/_types/src/components/common/TransactionModal/steps/WaitingForDepositStep.d.ts +13 -0
- package/_types/src/components/common/TransactionModal/steps/WaitingForDepositStep.d.ts.map +1 -0
- package/_types/src/components/common/UnverifiedTokenModal.d.ts +16 -0
- package/_types/src/components/common/UnverifiedTokenModal.d.ts.map +1 -0
- package/_types/src/components/primitives/AccessibleList.d.ts +17 -0
- package/_types/src/components/primitives/AccessibleList.d.ts.map +1 -0
- package/_types/src/components/primitives/Anchor.d.ts +44 -0
- package/_types/src/components/primitives/Anchor.d.ts.map +1 -0
- package/_types/src/components/primitives/Box.d.ts +10 -0
- package/_types/src/components/primitives/Box.d.ts.map +1 -0
- package/_types/src/components/primitives/Button.d.ts +11 -0
- package/_types/src/components/primitives/Button.d.ts.map +1 -0
- package/_types/src/components/primitives/ChainIcon.d.ts +12 -0
- package/_types/src/components/primitives/ChainIcon.d.ts.map +1 -0
- package/_types/src/components/primitives/ChainTokenIcon.d.ts +13 -0
- package/_types/src/components/primitives/ChainTokenIcon.d.ts.map +1 -0
- package/_types/src/components/primitives/Collapsible.d.ts +20 -0
- package/_types/src/components/primitives/Collapsible.d.ts.map +1 -0
- package/_types/src/components/primitives/Dialog.d.ts +23 -0
- package/_types/src/components/primitives/Dialog.d.ts.map +1 -0
- package/_types/src/components/primitives/Dropdown.d.ts +16 -0
- package/_types/src/components/primitives/Dropdown.d.ts.map +1 -0
- package/_types/src/components/primitives/Flex.d.ts +71 -0
- package/_types/src/components/primitives/Flex.d.ts.map +1 -0
- package/_types/src/components/primitives/Input.d.ts +18 -0
- package/_types/src/components/primitives/Input.d.ts.map +1 -0
- package/_types/src/components/primitives/Pill.d.ts +50 -0
- package/_types/src/components/primitives/Pill.d.ts.map +1 -0
- package/_types/src/components/primitives/Skeleton.d.ts +8 -0
- package/_types/src/components/primitives/Skeleton.d.ts.map +1 -0
- package/_types/src/components/primitives/Switch.d.ts +10 -0
- package/_types/src/components/primitives/Switch.d.ts.map +1 -0
- package/_types/src/components/primitives/Tabs.d.ts +17 -0
- package/_types/src/components/primitives/Tabs.d.ts.map +1 -0
- package/_types/src/components/primitives/Text.d.ts +99 -0
- package/_types/src/components/primitives/Text.d.ts.map +1 -0
- package/_types/src/components/primitives/Tooltip.d.ts +3 -0
- package/_types/src/components/primitives/Tooltip.d.ts.map +1 -0
- package/_types/src/components/primitives/index.d.ts +14 -0
- package/_types/src/components/primitives/index.d.ts.map +1 -0
- package/_types/src/components/widgets/FeeBreakdown.d.ts +14 -0
- package/_types/src/components/widgets/FeeBreakdown.d.ts.map +1 -0
- package/_types/src/components/widgets/FetchingQuoteLoader.d.ts +9 -0
- package/_types/src/components/widgets/FetchingQuoteLoader.d.ts.map +1 -0
- package/_types/src/components/widgets/OnrampWidget/index.d.ts +2 -0
- package/_types/src/components/widgets/OnrampWidget/index.d.ts.map +1 -0
- package/_types/src/components/widgets/OnrampWidget/modals/OnrampModal.d.ts +41 -0
- package/_types/src/components/widgets/OnrampWidget/modals/OnrampModal.d.ts.map +1 -0
- package/_types/src/components/widgets/OnrampWidget/modals/steps/OnrampConfirmingStep.d.ts +22 -0
- package/_types/src/components/widgets/OnrampWidget/modals/steps/OnrampConfirmingStep.d.ts.map +1 -0
- package/_types/src/components/widgets/OnrampWidget/modals/steps/OnrampMoonPayStep.d.ts +33 -0
- package/_types/src/components/widgets/OnrampWidget/modals/steps/OnrampMoonPayStep.d.ts.map +1 -0
- package/_types/src/components/widgets/OnrampWidget/modals/steps/OnrampProcessingPassthroughStep.d.ts +11 -0
- package/_types/src/components/widgets/OnrampWidget/modals/steps/OnrampProcessingPassthroughStep.d.ts.map +1 -0
- package/_types/src/components/widgets/OnrampWidget/modals/steps/OnrampProcessingStepUI.d.ts +19 -0
- package/_types/src/components/widgets/OnrampWidget/modals/steps/OnrampProcessingStepUI.d.ts.map +1 -0
- package/_types/src/components/widgets/OnrampWidget/modals/steps/OnrampSuccessStep.d.ts +15 -0
- package/_types/src/components/widgets/OnrampWidget/modals/steps/OnrampSuccessStep.d.ts.map +1 -0
- package/_types/src/components/widgets/OnrampWidget/widget/FiatCurrencyModal.d.ts +10 -0
- package/_types/src/components/widgets/OnrampWidget/widget/FiatCurrencyModal.d.ts.map +1 -0
- package/_types/src/components/widgets/OnrampWidget/widget/OnrampWidgetRenderer.d.ts +45 -0
- package/_types/src/components/widgets/OnrampWidget/widget/OnrampWidgetRenderer.d.ts.map +1 -0
- package/_types/src/components/widgets/OnrampWidget/widget/index.d.ts +38 -0
- package/_types/src/components/widgets/OnrampWidget/widget/index.d.ts.map +1 -0
- package/_types/src/components/widgets/PriceImpactTooltip.d.ts +10 -0
- package/_types/src/components/widgets/PriceImpactTooltip.d.ts.map +1 -0
- package/_types/src/components/widgets/SwapButton.d.ts +14 -0
- package/_types/src/components/widgets/SwapButton.d.ts.map +1 -0
- package/_types/src/components/widgets/SwapRouteSelector.d.ts +14 -0
- package/_types/src/components/widgets/SwapRouteSelector.d.ts.map +1 -0
- package/_types/src/components/widgets/SwapWidget/GasTopUpSection.d.ts +13 -0
- package/_types/src/components/widgets/SwapWidget/GasTopUpSection.d.ts.map +1 -0
- package/_types/src/components/widgets/SwapWidget/index.d.ts +50 -0
- package/_types/src/components/widgets/SwapWidget/index.d.ts.map +1 -0
- package/_types/src/components/widgets/SwapWidgetRenderer.d.ts +133 -0
- package/_types/src/components/widgets/SwapWidgetRenderer.d.ts.map +1 -0
- package/_types/src/components/widgets/TokenSelectorContainer.d.ts +8 -0
- package/_types/src/components/widgets/TokenSelectorContainer.d.ts.map +1 -0
- package/_types/src/components/widgets/WidgetContainer.d.ts +29 -0
- package/_types/src/components/widgets/WidgetContainer.d.ts.map +1 -0
- package/_types/src/components/widgets/WidgetErrorWell.d.ts +26 -0
- package/_types/src/components/widgets/WidgetErrorWell.d.ts.map +1 -0
- package/_types/src/components/widgets/WidgetFooter.d.ts +3 -0
- package/_types/src/components/widgets/WidgetFooter.d.ts.map +1 -0
- package/_types/src/constants/address.d.ts +5 -0
- package/_types/src/constants/address.d.ts.map +1 -0
- package/_types/src/constants/agwRegistryAbi.d.ts +16 -0
- package/_types/src/constants/agwRegistryAbi.d.ts.map +1 -0
- package/_types/src/constants/cache.d.ts +3 -0
- package/_types/src/constants/cache.d.ts.map +1 -0
- package/_types/src/constants/chainIdToAlchemyNetworkMap.d.ts +2 -0
- package/_types/src/constants/chainIdToAlchemyNetworkMap.d.ts.map +1 -0
- package/_types/src/constants/currencies.d.ts +8 -0
- package/_types/src/constants/currencies.d.ts.map +1 -0
- package/_types/src/constants/depositAddresses.d.ts +2 -0
- package/_types/src/constants/depositAddresses.d.ts.map +1 -0
- package/_types/src/constants/events.d.ts +59 -0
- package/_types/src/constants/events.d.ts.map +1 -0
- package/_types/src/constants/maxGasBuffer.d.ts +9 -0
- package/_types/src/constants/maxGasBuffer.d.ts.map +1 -0
- package/_types/src/constants/moonPayCurrencies.d.ts +11 -0
- package/_types/src/constants/moonPayCurrencies.d.ts.map +1 -0
- package/_types/src/constants/moonPayFiatCurrencies.d.ts +8 -0
- package/_types/src/constants/moonPayFiatCurrencies.d.ts.map +1 -0
- package/_types/src/constants/walletCompatibility.d.ts +4 -0
- package/_types/src/constants/walletCompatibility.d.ts.map +1 -0
- package/_types/src/hooks/index.d.ts +25 -0
- package/_types/src/hooks/index.d.ts.map +1 -0
- package/_types/src/hooks/useAdaptedWalletBalance.d.ts +175 -0
- package/_types/src/hooks/useAdaptedWalletBalance.d.ts.map +1 -0
- package/_types/src/hooks/useAtomicBatchSupport.d.ts +9 -0
- package/_types/src/hooks/useAtomicBatchSupport.d.ts.map +1 -0
- package/_types/src/hooks/useBitcoinBalance.d.ts +13 -0
- package/_types/src/hooks/useBitcoinBalance.d.ts.map +1 -0
- package/_types/src/hooks/useCexAddresses.d.ts +6 -0
- package/_types/src/hooks/useCexAddresses.d.ts.map +1 -0
- package/_types/src/hooks/useCurrencyBalance.d.ts +23 -0
- package/_types/src/hooks/useCurrencyBalance.d.ts.map +1 -0
- package/_types/src/hooks/useDebounceState.d.ts +11 -0
- package/_types/src/hooks/useDebounceState.d.ts.map +1 -0
- package/_types/src/hooks/useDisconnected.d.ts +4 -0
- package/_types/src/hooks/useDisconnected.d.ts.map +1 -0
- package/_types/src/hooks/useDuneBalances.d.ts +25 -0
- package/_types/src/hooks/useDuneBalances.d.ts.map +1 -0
- package/_types/src/hooks/useENSResolver.d.ts +14 -0
- package/_types/src/hooks/useENSResolver.d.ts.map +1 -0
- package/_types/src/hooks/useEclipseBalance.d.ts +12 -0
- package/_types/src/hooks/useEclipseBalance.d.ts.map +1 -0
- package/_types/src/hooks/useEnhancedTokensList.d.ts +23 -0
- package/_types/src/hooks/useEnhancedTokensList.d.ts.map +1 -0
- package/_types/src/hooks/useFallbackState.d.ts +5 -0
- package/_types/src/hooks/useFallbackState.d.ts.map +1 -0
- package/_types/src/hooks/useGasTopUpRequired.d.ts +9 -0
- package/_types/src/hooks/useGasTopUpRequired.d.ts.map +1 -0
- package/_types/src/hooks/useHyperliquidUsdcBalance.d.ts +23 -0
- package/_types/src/hooks/useHyperliquidUsdcBalance.d.ts.map +1 -0
- package/_types/src/hooks/useInternalRelayChains.d.ts +131 -0
- package/_types/src/hooks/useInternalRelayChains.d.ts.map +1 -0
- package/_types/src/hooks/useIpAddress.d.ts +9 -0
- package/_types/src/hooks/useIpAddress.d.ts.map +1 -0
- package/_types/src/hooks/useIsAGW.d.ts +2 -0
- package/_types/src/hooks/useIsAGW.d.ts.map +1 -0
- package/_types/src/hooks/useIsPassthrough.d.ts +17 -0
- package/_types/src/hooks/useIsPassthrough.d.ts.map +1 -0
- package/_types/src/hooks/useIsWalletCompatible.d.ts +4 -0
- package/_types/src/hooks/useIsWalletCompatible.d.ts.map +1 -0
- package/_types/src/hooks/useMoonPayCurrencies.d.ts +51 -0
- package/_types/src/hooks/useMoonPayCurrencies.d.ts.map +1 -0
- package/_types/src/hooks/useMoonPayGeolocation.d.ts +25 -0
- package/_types/src/hooks/useMoonPayGeolocation.d.ts.map +1 -0
- package/_types/src/hooks/useMoonPayTransaction.d.ts +22 -0
- package/_types/src/hooks/useMoonPayTransaction.d.ts.map +1 -0
- package/_types/src/hooks/useMounted.d.ts +3 -0
- package/_types/src/hooks/useMounted.d.ts.map +1 -0
- package/_types/src/hooks/usePreviousValueChange.d.ts +3 -0
- package/_types/src/hooks/usePreviousValueChange.d.ts.map +1 -0
- package/_types/src/hooks/useRelayClient.d.ts +2 -0
- package/_types/src/hooks/useRelayClient.d.ts.map +1 -0
- package/_types/src/hooks/useSuiBalance.d.ts +14 -0
- package/_types/src/hooks/useSuiBalance.d.ts.map +1 -0
- package/_types/src/hooks/useSupportedMoonPayCurrencyCode.d.ts +11 -0
- package/_types/src/hooks/useSupportedMoonPayCurrencyCode.d.ts.map +1 -0
- package/_types/src/hooks/useWalletAddress.d.ts +5 -0
- package/_types/src/hooks/useWalletAddress.d.ts.map +1 -0
- package/_types/src/hooks/widget/useSwapButtonCta.d.ts +28 -0
- package/_types/src/hooks/widget/useSwapButtonCta.d.ts.map +1 -0
- package/_types/src/icons/SwitchIcon.d.ts +9 -0
- package/_types/src/icons/SwitchIcon.d.ts.map +1 -0
- package/_types/src/icons/index.d.ts +2 -0
- package/_types/src/icons/index.d.ts.map +1 -0
- package/_types/src/img/AllChainsLogo.d.ts +4 -0
- package/_types/src/img/AllChainsLogo.d.ts.map +1 -0
- package/_types/src/img/MoonPayLogo.d.ts +4 -0
- package/_types/src/img/MoonPayLogo.d.ts.map +1 -0
- package/_types/src/img/ReservoirText.d.ts +4 -0
- package/_types/src/img/ReservoirText.d.ts.map +1 -0
- package/_types/src/index.d.ts +11 -0
- package/_types/src/index.d.ts.map +1 -0
- package/_types/src/providers/RelayClientProvider.d.ts +9 -0
- package/_types/src/providers/RelayClientProvider.d.ts.map +1 -0
- package/_types/src/providers/RelayKitProvider.d.ts +58 -0
- package/_types/src/providers/RelayKitProvider.d.ts.map +1 -0
- package/_types/src/themes/RelayKitTheme.d.ts +78 -0
- package/_types/src/themes/RelayKitTheme.d.ts.map +1 -0
- package/_types/src/themes/index.d.ts +3 -0
- package/_types/src/themes/index.d.ts.map +1 -0
- package/_types/src/types/BridgeFee.d.ts +15 -0
- package/_types/src/types/BridgeFee.d.ts.map +1 -0
- package/_types/src/types/Fiat.d.ts +7 -0
- package/_types/src/types/Fiat.d.ts.map +1 -0
- package/_types/src/types/RelayTransaction.d.ts +4 -0
- package/_types/src/types/RelayTransaction.d.ts.map +1 -0
- package/_types/src/types/index.d.ts +21 -0
- package/_types/src/types/index.d.ts.map +1 -0
- package/_types/src/utils/address.d.ts +8 -0
- package/_types/src/utils/address.d.ts.map +1 -0
- package/_types/src/utils/bitcoin.d.ts +5 -0
- package/_types/src/utils/bitcoin.d.ts.map +1 -0
- package/_types/src/utils/browser.d.ts +2 -0
- package/_types/src/utils/browser.d.ts.map +1 -0
- package/_types/src/utils/ens.d.ts +2 -0
- package/_types/src/utils/ens.d.ts.map +1 -0
- package/_types/src/utils/errors.d.ts +3 -0
- package/_types/src/utils/errors.d.ts.map +1 -0
- package/_types/src/utils/fetcher.d.ts +4 -0
- package/_types/src/utils/fetcher.d.ts.map +1 -0
- package/_types/src/utils/getChainBlockExplorerUrl.d.ts +4 -0
- package/_types/src/utils/getChainBlockExplorerUrl.d.ts.map +1 -0
- package/_types/src/utils/getTxBlockExplorerUrl.d.ts +3 -0
- package/_types/src/utils/getTxBlockExplorerUrl.d.ts.map +1 -0
- package/_types/src/utils/hashing.d.ts +2 -0
- package/_types/src/utils/hashing.d.ts.map +1 -0
- package/_types/src/utils/localStorage.d.ts +30 -0
- package/_types/src/utils/localStorage.d.ts.map +1 -0
- package/_types/src/utils/moonPay.d.ts +11 -0
- package/_types/src/utils/moonPay.d.ts.map +1 -0
- package/_types/src/utils/nativeMaxAmount.d.ts +34 -0
- package/_types/src/utils/nativeMaxAmount.d.ts.map +1 -0
- package/_types/src/utils/numbers.d.ts +21 -0
- package/_types/src/utils/numbers.d.ts.map +1 -0
- package/_types/src/utils/qrcode.d.ts +3 -0
- package/_types/src/utils/qrcode.d.ts.map +1 -0
- package/_types/src/utils/quote.d.ts +132 -0
- package/_types/src/utils/quote.d.ts.map +1 -0
- package/_types/src/utils/relayTransaction.d.ts +21 -0
- package/_types/src/utils/relayTransaction.d.ts.map +1 -0
- package/_types/src/utils/slippage.d.ts +9 -0
- package/_types/src/utils/slippage.d.ts.map +1 -0
- package/_types/src/utils/solana.d.ts +10 -0
- package/_types/src/utils/solana.d.ts.map +1 -0
- package/_types/src/utils/steps.d.ts +43 -0
- package/_types/src/utils/steps.d.ts.map +1 -0
- package/_types/src/utils/sui.d.ts +8 -0
- package/_types/src/utils/sui.d.ts.map +1 -0
- package/_types/src/utils/theme.d.ts +5 -0
- package/_types/src/utils/theme.d.ts.map +1 -0
- package/_types/src/utils/time.d.ts +4 -0
- package/_types/src/utils/time.d.ts.map +1 -0
- package/_types/src/utils/titleCase.d.ts +8 -0
- package/_types/src/utils/titleCase.d.ts.map +1 -0
- package/_types/src/utils/tokenSelector.d.ts +23 -0
- package/_types/src/utils/tokenSelector.d.ts.map +1 -0
- package/_types/src/utils/tokens.d.ts +21 -0
- package/_types/src/utils/tokens.d.ts.map +1 -0
- package/_types/src/utils/tron.d.ts +6 -0
- package/_types/src/utils/tron.d.ts.map +1 -0
- package/_types/src/utils/truncate.d.ts +13 -0
- package/_types/src/utils/truncate.d.ts.map +1 -0
- package/_types/src/version.d.ts +2 -0
- package/_types/src/version.d.ts.map +1 -0
- package/_types/tsconfig.build.tsbuildinfo +1 -0
- package/dist/panda.buildinfo.json +575 -0
- package/dist/styles.css +3408 -0
- package/package.json +109 -0
- package/readme.md +36 -0
|
@@ -0,0 +1,172 @@
|
|
|
1
|
+
import { EVM_GAS_BUFFER_MULTIPLIER, MINIMUM_GAS_PRICE_WEI, SOLANA_FEE_BUFFER_MULTIPLIER, SOLANA_DEFAULT_FEE_LAMPORTS, ECLIPSE_FEE_BUFFER_MULTIPLIER, ECLIPSE_DEFAULT_FEE_WEI, EVM_DEFAULT_FEE_WEI } from '../constants/maxGasBuffer.js';
|
|
2
|
+
import { MAINNET_RELAY_API } from '@relayprotocol/relay-sdk';
|
|
3
|
+
import { queryRequests } from '@relayprotocol/relay-kit-hooks';
|
|
4
|
+
import { getCacheEntry, setCacheEntry } from './localStorage.js';
|
|
5
|
+
// Refs to store ongoing fetch promises
|
|
6
|
+
const fetchPromises = {};
|
|
7
|
+
/**
|
|
8
|
+
* Calculates the gas buffer needed for a native EVM token transfer.
|
|
9
|
+
* This buffer is estimated based on gas price and a standard limit,
|
|
10
|
+
* then multiplied by a safety factor.
|
|
11
|
+
*
|
|
12
|
+
* @param publicClient - A VIEM PublicClient connected to the EVM chain.
|
|
13
|
+
* @param balance - The total native balance of the user (used for early exit).
|
|
14
|
+
* @param gasLimit - Optional: The gas limit to use for estimation (defaults to 400000n).
|
|
15
|
+
* @returns The calculated gas buffer amount as a bigint, or 0n if estimation fails or balance is zero.
|
|
16
|
+
*/
|
|
17
|
+
export const calculateEvmNativeGasBuffer = async (publicClient, balance, gasLimit = 400000n) => {
|
|
18
|
+
if (!balance || balance <= 0n) {
|
|
19
|
+
return 0n;
|
|
20
|
+
}
|
|
21
|
+
// Fixed fallback buffer: 0.005 ETH in Wei
|
|
22
|
+
const defaultBuffer = EVM_DEFAULT_FEE_WEI;
|
|
23
|
+
try {
|
|
24
|
+
let feeData;
|
|
25
|
+
try {
|
|
26
|
+
feeData = await publicClient.estimateFeesPerGas();
|
|
27
|
+
}
|
|
28
|
+
catch (eip1559Error) {
|
|
29
|
+
// Fallback to legacy gas price estimation
|
|
30
|
+
try {
|
|
31
|
+
const gasPrice = await publicClient.getGasPrice();
|
|
32
|
+
feeData = {
|
|
33
|
+
maxFeePerGas: gasPrice,
|
|
34
|
+
gasPrice: gasPrice
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
catch (legacyError) {
|
|
38
|
+
// If both estimations fail, return fallback buffer
|
|
39
|
+
console.error('Failed to estimate gas price:', legacyError);
|
|
40
|
+
return defaultBuffer;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
// Prefer EIP-1559 maxFeePerGas if available, otherwise use gasPrice
|
|
44
|
+
let gasPriceToUse = feeData.maxFeePerGas ?? feeData.gasPrice;
|
|
45
|
+
if (!gasPriceToUse || gasPriceToUse <= 0n) {
|
|
46
|
+
console.error('Invalid gas price data received:', feeData);
|
|
47
|
+
return defaultBuffer;
|
|
48
|
+
}
|
|
49
|
+
if (gasPriceToUse < MINIMUM_GAS_PRICE_WEI) {
|
|
50
|
+
gasPriceToUse = MINIMUM_GAS_PRICE_WEI;
|
|
51
|
+
}
|
|
52
|
+
const estimatedGasCost = gasPriceToUse * gasLimit;
|
|
53
|
+
const buffer = estimatedGasCost * EVM_GAS_BUFFER_MULTIPLIER;
|
|
54
|
+
// return the calculated buffer
|
|
55
|
+
return buffer;
|
|
56
|
+
}
|
|
57
|
+
catch (error) {
|
|
58
|
+
console.error('Error calculating EVM native gas buffer:', error);
|
|
59
|
+
return defaultBuffer;
|
|
60
|
+
}
|
|
61
|
+
};
|
|
62
|
+
/**
|
|
63
|
+
* Calculates the fee buffer needed for a native SVM (e.g., Solana) or Eclipse transaction.
|
|
64
|
+
* Uses specific multipliers and default fees for each type.
|
|
65
|
+
* Falls back to a default fee if API data is unavailable or invalid.
|
|
66
|
+
*
|
|
67
|
+
* @param chainId - The chain ID of the SVM or Eclipse network.
|
|
68
|
+
* @returns The calculated fee buffer amount (in lamports for Solana, Wei for Eclipse) as a bigint, or a fallback buffer if estimation fails.
|
|
69
|
+
*/
|
|
70
|
+
export const calculateSvmNativeFeeBuffer = async (chainId) => {
|
|
71
|
+
const isEclipseChain = chainId === 9286185;
|
|
72
|
+
const multiplier = isEclipseChain
|
|
73
|
+
? ECLIPSE_FEE_BUFFER_MULTIPLIER
|
|
74
|
+
: SOLANA_FEE_BUFFER_MULTIPLIER;
|
|
75
|
+
const fallbackBuffer = isEclipseChain
|
|
76
|
+
? ECLIPSE_DEFAULT_FEE_WEI * ECLIPSE_FEE_BUFFER_MULTIPLIER
|
|
77
|
+
: SOLANA_DEFAULT_FEE_LAMPORTS * SOLANA_FEE_BUFFER_MULTIPLIER;
|
|
78
|
+
try {
|
|
79
|
+
const queryOptions = {
|
|
80
|
+
limit: 20,
|
|
81
|
+
originChainId: chainId
|
|
82
|
+
};
|
|
83
|
+
const resp = await queryRequests(MAINNET_RELAY_API, queryOptions);
|
|
84
|
+
if (!resp || !Array.isArray(resp.requests) || resp.requests.length === 0) {
|
|
85
|
+
console.warn('No valid fees found in response. Using fallback buffer.');
|
|
86
|
+
return fallbackBuffer;
|
|
87
|
+
}
|
|
88
|
+
// Extract fees data from the response
|
|
89
|
+
const fees = resp.requests
|
|
90
|
+
.map((r) => {
|
|
91
|
+
const feeStr = r?.data?.inTxs?.[0]?.fee;
|
|
92
|
+
try {
|
|
93
|
+
return BigInt(feeStr);
|
|
94
|
+
}
|
|
95
|
+
catch {
|
|
96
|
+
return null;
|
|
97
|
+
}
|
|
98
|
+
})
|
|
99
|
+
.filter((f) => f !== null);
|
|
100
|
+
if (fees.length === 0) {
|
|
101
|
+
return fallbackBuffer;
|
|
102
|
+
}
|
|
103
|
+
// Find the maximum fee among the valid fees
|
|
104
|
+
const maxFee = fees.reduce((max, current) => (current > max ? current : max), 0n);
|
|
105
|
+
// Apply buffer multiplier to the maximum fee
|
|
106
|
+
const buffer = maxFee * multiplier;
|
|
107
|
+
return buffer;
|
|
108
|
+
}
|
|
109
|
+
catch (error) {
|
|
110
|
+
console.error('Error calculating SVM native fee buffer:', error);
|
|
111
|
+
return fallbackBuffer;
|
|
112
|
+
}
|
|
113
|
+
};
|
|
114
|
+
/**
|
|
115
|
+
* Gets the fee buffer amount for a given chain and VM type.
|
|
116
|
+
* Handles caching, ongoing fetch promises, and initiates calculation if needed.
|
|
117
|
+
*
|
|
118
|
+
* @param vmType - The virtual machine type ('evm' or 'svm').
|
|
119
|
+
* @param chainId - The chain ID.
|
|
120
|
+
* @param balance - The current balance (required for EVM calculation).
|
|
121
|
+
* @param publicClient - VIEM PublicClient (required for EVM calculation).
|
|
122
|
+
* @returns A promise that resolves to the fee buffer amount as a bigint.
|
|
123
|
+
*/
|
|
124
|
+
export const getFeeBufferAmount = async (vmType, chainId, balance, publicClient) => {
|
|
125
|
+
const cacheKey = `${vmType}FeeBuffer:${chainId}`;
|
|
126
|
+
const cachedBufferStr = getCacheEntry(cacheKey);
|
|
127
|
+
if (cachedBufferStr) {
|
|
128
|
+
return BigInt(cachedBufferStr);
|
|
129
|
+
}
|
|
130
|
+
// Check if a fetch is already in progress
|
|
131
|
+
if (Object.prototype.hasOwnProperty.call(fetchPromises, cacheKey)) {
|
|
132
|
+
return fetchPromises[cacheKey];
|
|
133
|
+
}
|
|
134
|
+
// Initiate fetch
|
|
135
|
+
let calculationPromise;
|
|
136
|
+
if (vmType === 'evm') {
|
|
137
|
+
if (!publicClient) {
|
|
138
|
+
console.error('PublicClient is required for EVM fee buffer calculation.');
|
|
139
|
+
return EVM_DEFAULT_FEE_WEI * EVM_GAS_BUFFER_MULTIPLIER;
|
|
140
|
+
}
|
|
141
|
+
calculationPromise = calculateEvmNativeGasBuffer(publicClient, balance);
|
|
142
|
+
}
|
|
143
|
+
else if (vmType === 'svm') {
|
|
144
|
+
const isEclipseChain = chainId === 9286185;
|
|
145
|
+
const fallbackBuffer = isEclipseChain
|
|
146
|
+
? ECLIPSE_DEFAULT_FEE_WEI * ECLIPSE_FEE_BUFFER_MULTIPLIER
|
|
147
|
+
: SOLANA_DEFAULT_FEE_LAMPORTS * SOLANA_FEE_BUFFER_MULTIPLIER;
|
|
148
|
+
calculationPromise = calculateSvmNativeFeeBuffer(chainId).catch((error) => {
|
|
149
|
+
console.error(`Failed to calculate SVM fee buffer for chain ${chainId}:`, error);
|
|
150
|
+
return fallbackBuffer;
|
|
151
|
+
});
|
|
152
|
+
}
|
|
153
|
+
else {
|
|
154
|
+
console.warn(`Unsupported VM type encountered: ${vmType}. Returning default EVM buffer.`);
|
|
155
|
+
return EVM_DEFAULT_FEE_WEI * EVM_GAS_BUFFER_MULTIPLIER;
|
|
156
|
+
}
|
|
157
|
+
// Store the promise
|
|
158
|
+
fetchPromises[cacheKey] = calculationPromise;
|
|
159
|
+
// Handle caching and cleanup after promise settles
|
|
160
|
+
calculationPromise
|
|
161
|
+
.then((buffer) => {
|
|
162
|
+
setCacheEntry(cacheKey, buffer, 5);
|
|
163
|
+
})
|
|
164
|
+
.catch((error) => {
|
|
165
|
+
console.error(`Error processing fee buffer for ${cacheKey}:`, error);
|
|
166
|
+
})
|
|
167
|
+
.finally(() => {
|
|
168
|
+
delete fetchPromises[cacheKey];
|
|
169
|
+
});
|
|
170
|
+
return calculationPromise;
|
|
171
|
+
};
|
|
172
|
+
//# sourceMappingURL=nativeMaxAmount.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nativeMaxAmount.js","sourceRoot":"","sources":["../../../src/utils/nativeMaxAmount.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,191 @@
|
|
|
1
|
+
import { formatUnits } from 'viem';
|
|
2
|
+
import { isSafariBrowser } from './browser.js';
|
|
3
|
+
const { format: formatUsdCurrency } = new Intl.NumberFormat('en-US', {
|
|
4
|
+
style: 'currency',
|
|
5
|
+
currency: 'USD'
|
|
6
|
+
});
|
|
7
|
+
function formatDollar(price) {
|
|
8
|
+
if (price === undefined || price === null || price === 0) {
|
|
9
|
+
return '-';
|
|
10
|
+
}
|
|
11
|
+
// For values >= $1B, show ">$1B"
|
|
12
|
+
if (Math.abs(price) >= 1000000000) {
|
|
13
|
+
return '>$1B';
|
|
14
|
+
}
|
|
15
|
+
const formatted = formatUsdCurrency(price);
|
|
16
|
+
if (formatted === '$0.00' && price && price > 0) {
|
|
17
|
+
return '< $0.01';
|
|
18
|
+
}
|
|
19
|
+
return formatted;
|
|
20
|
+
}
|
|
21
|
+
function formatNumber(amount, maximumFractionDigits = 2, compact) {
|
|
22
|
+
const { format } = new Intl.NumberFormat('en-US', {
|
|
23
|
+
maximumFractionDigits: maximumFractionDigits,
|
|
24
|
+
notation: compact ? 'compact' : 'standard'
|
|
25
|
+
});
|
|
26
|
+
if (!amount) {
|
|
27
|
+
return '-';
|
|
28
|
+
}
|
|
29
|
+
const numAmount = Number(amount);
|
|
30
|
+
if (numAmount >= 1000000000) {
|
|
31
|
+
return '>1B';
|
|
32
|
+
}
|
|
33
|
+
// Handle very small positive values
|
|
34
|
+
if (numAmount > 0) {
|
|
35
|
+
const threshold = Math.pow(10, -maximumFractionDigits);
|
|
36
|
+
if (numAmount < threshold) {
|
|
37
|
+
const thresholdStr = threshold.toFixed(maximumFractionDigits);
|
|
38
|
+
return `< ${thresholdStr}`;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
return format(numAmount).replace(/\.?0+$/, '');
|
|
42
|
+
}
|
|
43
|
+
const truncateFractionAndFormat = (parts, digits) => {
|
|
44
|
+
return parts
|
|
45
|
+
.map(({ type, value }) => {
|
|
46
|
+
if (type !== 'fraction' || !value || value.length < digits) {
|
|
47
|
+
return value;
|
|
48
|
+
}
|
|
49
|
+
let formattedValue = '';
|
|
50
|
+
for (let idx = 0; idx < value.length && idx < digits; idx++) {
|
|
51
|
+
formattedValue += value[idx];
|
|
52
|
+
}
|
|
53
|
+
return formattedValue;
|
|
54
|
+
})
|
|
55
|
+
.reduce((string, part) => string + part);
|
|
56
|
+
};
|
|
57
|
+
/**
|
|
58
|
+
* Convert ETH values to human readable formats
|
|
59
|
+
* @param amount An ETH amount
|
|
60
|
+
* @param maximumFractionDigits Number of decimal digits
|
|
61
|
+
* @param decimals Number of decimal digits for the atomic unit
|
|
62
|
+
* @param compact A boolean value used to specify the formatting notation
|
|
63
|
+
* @returns returns the ETH value as a `string` or `-` if the amount is `null` or `undefined`
|
|
64
|
+
*/
|
|
65
|
+
function formatBN(amount, maximumFractionDigits, decimals = 18, compact = true, formatOptionsParam = {}) {
|
|
66
|
+
if (typeof amount === 'undefined' || amount === null)
|
|
67
|
+
return '-';
|
|
68
|
+
const amountToFormat = typeof amount === 'number'
|
|
69
|
+
? amount
|
|
70
|
+
: +formatUnits(BigInt(amount), decimals ?? 18);
|
|
71
|
+
if (amountToFormat === 0) {
|
|
72
|
+
return `${amountToFormat}`;
|
|
73
|
+
}
|
|
74
|
+
const amountFraction = `${amount}`.split('.')[1];
|
|
75
|
+
const isSafari = isSafariBrowser();
|
|
76
|
+
const formatOptions = {
|
|
77
|
+
minimumFractionDigits: 0,
|
|
78
|
+
maximumFractionDigits: 20,
|
|
79
|
+
useGrouping: true,
|
|
80
|
+
notation: compact ? 'compact' : 'standard',
|
|
81
|
+
compactDisplay: 'short',
|
|
82
|
+
...formatOptionsParam
|
|
83
|
+
};
|
|
84
|
+
// New issue introduced in Safari v16 causes a regression and now need lessPrecision flagged in format options
|
|
85
|
+
if (isSafari) {
|
|
86
|
+
//@ts-ignore
|
|
87
|
+
formatOptions.roundingPriority = 'lessPrecision';
|
|
88
|
+
}
|
|
89
|
+
const parts = new Intl.NumberFormat('en-US', formatOptions).formatToParts(amountToFormat);
|
|
90
|
+
// Safari has a few bugs with the fraction part of formatToParts, sometimes rounding when unnecessary and
|
|
91
|
+
// when amount is in the thousands not properly representing the value in compact display. Until the bug is fixed
|
|
92
|
+
// this workaround should help. bugzilla bug report: https://bugs.webkit.org/show_bug.cgi?id=249231
|
|
93
|
+
// Update: this has been fixed, but still applied for >v15.3 and <v16
|
|
94
|
+
if (isSafari) {
|
|
95
|
+
const partTypes = parts.map((part) => part.type);
|
|
96
|
+
const partsIncludesFraction = partTypes.includes('fraction');
|
|
97
|
+
const partsIncludeCompactIdentifier = partTypes.includes('compact');
|
|
98
|
+
if (amountFraction) {
|
|
99
|
+
if (!partsIncludesFraction && !partsIncludeCompactIdentifier) {
|
|
100
|
+
const integerIndex = parts.findIndex((part) => part.type === 'integer');
|
|
101
|
+
parts.splice(integerIndex + 1, 0, {
|
|
102
|
+
type: 'decimal',
|
|
103
|
+
value: '.'
|
|
104
|
+
}, {
|
|
105
|
+
type: 'fraction',
|
|
106
|
+
value: amountFraction
|
|
107
|
+
});
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
else if (!partsIncludesFraction && partsIncludeCompactIdentifier) {
|
|
111
|
+
const compactIdentifier = parts.find((part) => part.type === 'compact');
|
|
112
|
+
const integerIndex = parts.findIndex((part) => part.type === 'integer');
|
|
113
|
+
const integer = parts[integerIndex];
|
|
114
|
+
if (compactIdentifier?.value === 'K' && integer) {
|
|
115
|
+
const fraction = `${amount}`.replace(integer.value, '')[0];
|
|
116
|
+
if (fraction && Number(fraction) > 0) {
|
|
117
|
+
parts.splice(integerIndex + 1, 0, {
|
|
118
|
+
type: 'decimal',
|
|
119
|
+
value: '.'
|
|
120
|
+
}, {
|
|
121
|
+
type: 'fraction',
|
|
122
|
+
value: fraction
|
|
123
|
+
});
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
if (parts && parts.length > 0) {
|
|
129
|
+
const lowestValue = Number(`0.${new Array(maximumFractionDigits).join('0')}1`);
|
|
130
|
+
if (amountToFormat > 1000) {
|
|
131
|
+
return truncateFractionAndFormat(parts, 1);
|
|
132
|
+
}
|
|
133
|
+
else if (amountToFormat < 1 && amountToFormat < lowestValue) {
|
|
134
|
+
return `< ${lowestValue}`;
|
|
135
|
+
}
|
|
136
|
+
else {
|
|
137
|
+
return truncateFractionAndFormat(parts, maximumFractionDigits);
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
else {
|
|
141
|
+
return typeof amount === 'string' || typeof amount === 'number'
|
|
142
|
+
? `${amount}`
|
|
143
|
+
: '';
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
function truncateBalance(balance) {
|
|
147
|
+
let formattedBalance = parseFloat(balance ? balance.substring(0, 6) : '0');
|
|
148
|
+
if (formattedBalance === 0) {
|
|
149
|
+
formattedBalance = 0;
|
|
150
|
+
}
|
|
151
|
+
return formattedBalance;
|
|
152
|
+
}
|
|
153
|
+
/**
|
|
154
|
+
* Formats a number represented by a string, ensuring the total length does not exceed a specified number of characters.
|
|
155
|
+
* @param amount The string to format
|
|
156
|
+
* @param maxLength The maximum total length of the string representation.
|
|
157
|
+
* @returns A plain string representation of the number, trimmed to the specified length.
|
|
158
|
+
*/
|
|
159
|
+
function formatFixedLength(amount, maxLength) {
|
|
160
|
+
if (!/^[-+]?\d*\.?\d*$/.test(amount))
|
|
161
|
+
return 'Invalid number';
|
|
162
|
+
const isNegative = amount.startsWith('-');
|
|
163
|
+
let result = amount.replace(/^-/, ''); // Remove negative sign for now
|
|
164
|
+
if (result.includes('.')) {
|
|
165
|
+
const parts = result.split('.');
|
|
166
|
+
const integerPart = parts[0];
|
|
167
|
+
const decimalPart = parts[1] || '';
|
|
168
|
+
// Calculate how many characters are left for the decimal part
|
|
169
|
+
const availableSpace = maxLength - integerPart.length;
|
|
170
|
+
if (integerPart.length >= maxLength) {
|
|
171
|
+
// If the integer part alone exceeds the maximum length, return just the integer part
|
|
172
|
+
result = integerPart;
|
|
173
|
+
}
|
|
174
|
+
else {
|
|
175
|
+
// Include as much of the decimal part as possible without exceeding the total length
|
|
176
|
+
result = integerPart + '.' + decimalPart.substring(0, availableSpace);
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
// Ensure no unnecessary trailing zeros and remove any trailing decimal points
|
|
180
|
+
result = result
|
|
181
|
+
.replace(/\.0+$/, '')
|
|
182
|
+
.replace(/\.(\d*[^0])0+$/, '.$1')
|
|
183
|
+
.replace(/\.$/, '');
|
|
184
|
+
// Add negative sign back if the number was negative
|
|
185
|
+
if (isNegative) {
|
|
186
|
+
result = '-' + result;
|
|
187
|
+
}
|
|
188
|
+
return result;
|
|
189
|
+
}
|
|
190
|
+
export { formatDollar, formatBN, formatFixedLength, formatNumber, truncateBalance };
|
|
191
|
+
//# sourceMappingURL=numbers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"numbers.js","sourceRoot":"","sources":["../../../src/utils/numbers.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { solana } from './solana.js';
|
|
2
|
+
export const generateQrWalletDeeplink = (vm, amount = '0', tokenAddress, toAddress, chainId) => {
|
|
3
|
+
if (vm === 'evm') {
|
|
4
|
+
return `ethereum:${toAddress}@${chainId}?value=${tokenAddress ? 0 : amount}`;
|
|
5
|
+
}
|
|
6
|
+
else if (vm === 'svm') {
|
|
7
|
+
if (chainId === solana.id) {
|
|
8
|
+
return `solana:${toAddress}?amount=${tokenAddress ? 0 : amount}`;
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
else if (vm === 'bvm') {
|
|
12
|
+
return `bitcoin:${toAddress}?amount=${tokenAddress ? 0 : amount}`;
|
|
13
|
+
}
|
|
14
|
+
else {
|
|
15
|
+
return toAddress;
|
|
16
|
+
}
|
|
17
|
+
return undefined;
|
|
18
|
+
};
|
|
19
|
+
//# sourceMappingURL=qrcode.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"qrcode.js","sourceRoot":"","sources":["../../../src/utils/qrcode.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAEpC,MAAM,CAAC,MAAM,wBAAwB,GAAG,CACtC,EAAY,EACZ,SAAiB,GAAG,EACpB,YAAqB,EACrB,SAAkB,EAClB,OAAgB,EAChB,EAAE;IACF,IAAI,EAAE,KAAK,KAAK,EAAE,CAAC;QACjB,OAAO,YAAY,SAAS,IAAI,OAAO,UAAU,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAA;IAC9E,CAAC;SAAM,IAAI,EAAE,KAAK,KAAK,EAAE,CAAC;QACxB,IAAI,OAAO,KAAK,MAAM,CAAC,EAAE,EAAE,CAAC;YAC1B,OAAO,UAAU,SAAS,WAAW,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAA;QAClE,CAAC;IACH,CAAC;SAAM,IAAI,EAAE,KAAK,KAAK,EAAE,CAAC;QACxB,OAAO,WAAW,SAAS,WAAW,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAA;IACnE,CAAC;SAAM,CAAC;QACN,OAAO,SAAS,CAAA;IAClB,CAAC;IACD,OAAO,SAAS,CAAA;AAClB,CAAC,CAAA"}
|
|
@@ -0,0 +1,248 @@
|
|
|
1
|
+
import { formatBN, formatDollar } from './numbers.js';
|
|
2
|
+
import { formatSeconds, get15MinuteInterval } from './time.js';
|
|
3
|
+
import { bitcoin } from '../utils/bitcoin.js';
|
|
4
|
+
import axios from 'axios';
|
|
5
|
+
import { sha256 } from './hashing.js';
|
|
6
|
+
const formatUsdFee = (amountUsd, shouldFlipSign = false) => {
|
|
7
|
+
const value = Number(amountUsd ?? 0);
|
|
8
|
+
const finalValue = shouldFlipSign ? -value : value;
|
|
9
|
+
return {
|
|
10
|
+
value: finalValue,
|
|
11
|
+
formatted: formatDollar(finalValue)
|
|
12
|
+
};
|
|
13
|
+
};
|
|
14
|
+
export const parseFees = (selectedTo, selectedFrom, quote) => {
|
|
15
|
+
const fees = quote?.fees;
|
|
16
|
+
const gasFee = BigInt(fees?.gas?.amount ?? 0);
|
|
17
|
+
const formattedGasFee = formatBN(gasFee, 5, Number(fees?.gas?.currency?.decimals ?? 18));
|
|
18
|
+
const relayerGasFee = BigInt(fees?.relayerGas?.amount ?? 0);
|
|
19
|
+
const formattedRelayerGas = formatBN(relayerGasFee, 5, Number(fees?.relayerGas?.currency?.decimals ?? 18));
|
|
20
|
+
const relayerFee = BigInt(fees?.relayerService?.amount ?? 0);
|
|
21
|
+
const relayerFeeIsReward = relayerFee < 0;
|
|
22
|
+
const formattedRelayer = relayerFeeIsReward
|
|
23
|
+
? formatBN(BigInt(fees?.relayerService?.amount?.replace('-', '') ?? 0), 5, Number(fees?.relayerService?.currency?.decimals ?? 18))
|
|
24
|
+
: formatBN(relayerFee, 5, Number(fees?.relayerService?.currency?.decimals ?? 18));
|
|
25
|
+
const appFee = BigInt(fees?.app?.amount ?? 0);
|
|
26
|
+
const totalFeesUsd = Number(fees?.relayer?.amountUsd ?? 0) + Number(fees?.app?.amountUsd ?? 0);
|
|
27
|
+
const breakdown = [
|
|
28
|
+
{
|
|
29
|
+
raw: gasFee,
|
|
30
|
+
formatted: `${formattedGasFee}`,
|
|
31
|
+
usd: formatUsdFee(fees?.gas?.amountUsd, true),
|
|
32
|
+
name: `Deposit Gas (${selectedFrom.displayName})`,
|
|
33
|
+
tooltip: null,
|
|
34
|
+
type: 'gas',
|
|
35
|
+
id: 'origin-gas',
|
|
36
|
+
currency: fees?.gas?.currency
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
raw: relayerGasFee,
|
|
40
|
+
formatted: `${formattedRelayerGas}`,
|
|
41
|
+
usd: formatUsdFee(fees?.relayerGas?.amountUsd, true),
|
|
42
|
+
name: `Fill Gas (${selectedTo.displayName})`,
|
|
43
|
+
tooltip: null,
|
|
44
|
+
type: 'gas',
|
|
45
|
+
id: 'destination-gas',
|
|
46
|
+
currency: fees?.relayerGas?.currency
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
raw: relayerFee,
|
|
50
|
+
formatted: `${relayerFeeIsReward ? '+' : '-'}${formattedRelayer}`,
|
|
51
|
+
usd: formatUsdFee(fees?.relayerService?.amountUsd, true),
|
|
52
|
+
name: relayerFeeIsReward ? 'Reward' : 'Relay Fee',
|
|
53
|
+
tooltip: null,
|
|
54
|
+
type: 'relayer',
|
|
55
|
+
id: 'relayer-fee',
|
|
56
|
+
currency: fees?.relayerService?.currency
|
|
57
|
+
}
|
|
58
|
+
];
|
|
59
|
+
if (appFee) {
|
|
60
|
+
const formattedAppFee = formatBN(appFee, 5, Number(fees?.app?.currency?.decimals ?? 18));
|
|
61
|
+
breakdown.push({
|
|
62
|
+
raw: appFee,
|
|
63
|
+
formatted: `${formattedAppFee}`,
|
|
64
|
+
usd: formatUsdFee(fees?.app?.amountUsd, true),
|
|
65
|
+
name: 'App Fee',
|
|
66
|
+
tooltip: null,
|
|
67
|
+
type: 'relayer',
|
|
68
|
+
id: 'app-fee',
|
|
69
|
+
currency: fees?.app?.currency
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
let priceImpactColor = 'subtleSecondary';
|
|
73
|
+
if (quote?.details?.totalImpact?.percent === '-0.00') {
|
|
74
|
+
quote.details.totalImpact.percent = '-0.01';
|
|
75
|
+
}
|
|
76
|
+
if (quote?.details?.totalImpact?.percent) {
|
|
77
|
+
let percent = Number(quote.details.totalImpact.percent);
|
|
78
|
+
if (percent <= -3) {
|
|
79
|
+
priceImpactColor = 'red';
|
|
80
|
+
}
|
|
81
|
+
else if (percent > 0) {
|
|
82
|
+
priceImpactColor = 'success';
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
return {
|
|
86
|
+
breakdown,
|
|
87
|
+
totalFees: {
|
|
88
|
+
usd: formatDollar(totalFeesUsd),
|
|
89
|
+
priceImpactPercentage: quote?.details?.totalImpact?.percent
|
|
90
|
+
? `${quote?.details?.totalImpact?.percent}%`
|
|
91
|
+
: undefined,
|
|
92
|
+
priceImpact: quote?.details?.totalImpact?.usd
|
|
93
|
+
? formatDollar(parseFloat(quote?.details?.totalImpact?.usd ?? 0))
|
|
94
|
+
: undefined,
|
|
95
|
+
priceImpactColor,
|
|
96
|
+
swapImpact: formatUsdFee(quote?.details?.swapImpact?.usd, false)
|
|
97
|
+
}
|
|
98
|
+
};
|
|
99
|
+
};
|
|
100
|
+
export const calculateRelayerFeeProportionUsd = (quote) => {
|
|
101
|
+
const usdIn = quote?.details?.currencyIn?.amountUsd
|
|
102
|
+
? Number(quote.details.currencyIn.amountUsd)
|
|
103
|
+
: null;
|
|
104
|
+
const relayerServiceFeeUsd = quote?.fees?.relayerService?.amountUsd
|
|
105
|
+
? Number(quote.fees.relayerService.amountUsd)
|
|
106
|
+
: null;
|
|
107
|
+
if (!usdIn || !relayerServiceFeeUsd) {
|
|
108
|
+
return 0n;
|
|
109
|
+
}
|
|
110
|
+
return BigInt(Math.floor((relayerServiceFeeUsd * 100) / usdIn));
|
|
111
|
+
};
|
|
112
|
+
export const calculateRelayerFeeProportion = (totalAmount, feeBreakdown) => {
|
|
113
|
+
if (totalAmount.rawExcludingOriginGas > 0n) {
|
|
114
|
+
const relayerFeeRaw = feeBreakdown.find((fee) => fee.id === 'relayer-fee')?.raw ?? 0n;
|
|
115
|
+
return (relayerFeeRaw * 100n) / totalAmount.rawExcludingOriginGas;
|
|
116
|
+
}
|
|
117
|
+
return 0n;
|
|
118
|
+
};
|
|
119
|
+
export const isHighRelayerServiceFeeUsd = (quote) => {
|
|
120
|
+
const usdIn = quote?.details?.currencyIn?.amountUsd
|
|
121
|
+
? Number(quote.details.currencyIn.amountUsd)
|
|
122
|
+
: null;
|
|
123
|
+
const relayerServiceFeeUsd = quote?.fees?.relayerService?.amountUsd
|
|
124
|
+
? Number(quote.fees.relayerService.amountUsd)
|
|
125
|
+
: null;
|
|
126
|
+
if (!usdIn || !relayerServiceFeeUsd) {
|
|
127
|
+
return false;
|
|
128
|
+
}
|
|
129
|
+
const feeThresholdPercentage = (usdIn * 1.5) / 100;
|
|
130
|
+
const feeThresholdUsd = 25;
|
|
131
|
+
return (relayerServiceFeeUsd > feeThresholdPercentage &&
|
|
132
|
+
relayerServiceFeeUsd > feeThresholdUsd);
|
|
133
|
+
};
|
|
134
|
+
export const extractQuoteId = (steps) => {
|
|
135
|
+
return steps && steps[0] ? steps[0].requestId : undefined;
|
|
136
|
+
};
|
|
137
|
+
export const extractDepositAddress = (steps) => {
|
|
138
|
+
const depositStep = steps?.find((step) => step.id === 'deposit');
|
|
139
|
+
return depositStep?.depositAddress;
|
|
140
|
+
};
|
|
141
|
+
export const calculatePriceTimeEstimate = (details) => {
|
|
142
|
+
const isBitcoin = details?.currencyIn?.currency?.chainId === bitcoin.id ||
|
|
143
|
+
details?.currencyOut?.currency?.chainId === bitcoin.id;
|
|
144
|
+
//If the relay is interacting with bitcoin we hardcode the time estime to 10m
|
|
145
|
+
const time = isBitcoin ? 1200 : (details?.timeEstimate ?? 0);
|
|
146
|
+
const formattedTime = formatSeconds(time);
|
|
147
|
+
return {
|
|
148
|
+
time,
|
|
149
|
+
formattedTime
|
|
150
|
+
};
|
|
151
|
+
};
|
|
152
|
+
export const appendMetadataToRequest = (baseUrl, requestId, additionalMetadata, referrer) => {
|
|
153
|
+
if (requestId && additionalMetadata) {
|
|
154
|
+
const triggerData = {
|
|
155
|
+
requestId,
|
|
156
|
+
additionalMetadata,
|
|
157
|
+
referrer
|
|
158
|
+
};
|
|
159
|
+
return axios.request({
|
|
160
|
+
url: `${baseUrl}/requests/metadata`,
|
|
161
|
+
method: 'POST',
|
|
162
|
+
data: triggerData
|
|
163
|
+
});
|
|
164
|
+
}
|
|
165
|
+
};
|
|
166
|
+
export const getCurrentStep = (steps) => {
|
|
167
|
+
if (!steps) {
|
|
168
|
+
return { step: null, stepItem: null };
|
|
169
|
+
}
|
|
170
|
+
const executableSteps = steps.filter((step) => step.items && step.items.length > 0);
|
|
171
|
+
const step = executableSteps.find((step) => step.items.some((item) => item.status === 'incomplete'));
|
|
172
|
+
const stepItem = step?.items.find((item) => item.status === 'incomplete');
|
|
173
|
+
return { step, stepItem };
|
|
174
|
+
};
|
|
175
|
+
export const getSwapEventData = (details, steps, connector, quoteParameters) => {
|
|
176
|
+
let operation = details?.operation;
|
|
177
|
+
if (operation === 'swap') {
|
|
178
|
+
const isSameChain = details?.currencyIn?.currency?.chainId ===
|
|
179
|
+
details?.currencyOut?.currency?.chainId;
|
|
180
|
+
if (isSameChain) {
|
|
181
|
+
operation = 'same_chain_swap';
|
|
182
|
+
}
|
|
183
|
+
else if (details?.currencyIn?.currency?.symbol ===
|
|
184
|
+
details?.currencyOut?.currency?.symbol) {
|
|
185
|
+
operation = 'bridge';
|
|
186
|
+
}
|
|
187
|
+
else {
|
|
188
|
+
operation = 'cross_chain_swap';
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
const interval = get15MinuteInterval();
|
|
192
|
+
const quoteRequestId = sha256({ ...quoteParameters, interval });
|
|
193
|
+
return {
|
|
194
|
+
wallet_connector: connector,
|
|
195
|
+
quote_request_id: quoteRequestId,
|
|
196
|
+
quote_id: steps ? extractQuoteId(steps) : undefined,
|
|
197
|
+
amount_in: details?.currencyIn?.amount,
|
|
198
|
+
currency_in: details?.currencyIn?.currency?.symbol,
|
|
199
|
+
chain_id_in: details?.currencyIn?.currency?.chainId,
|
|
200
|
+
amount_out: details?.currencyOut?.amount,
|
|
201
|
+
currency_out: details?.currencyOut?.currency?.symbol,
|
|
202
|
+
chain_id_out: details?.currencyOut?.currency?.chainId,
|
|
203
|
+
currency_in_usd: details?.currencyIn?.amountUsd,
|
|
204
|
+
currency_out_usd: details?.currencyOut?.amountUsd,
|
|
205
|
+
deposit_address: steps?.find((step) => step.depositAddress)?.depositAddress,
|
|
206
|
+
txHashes: steps
|
|
207
|
+
?.map((step) => {
|
|
208
|
+
let txHashes = [];
|
|
209
|
+
step.items?.forEach((item) => {
|
|
210
|
+
if (item.txHashes) {
|
|
211
|
+
txHashes = txHashes.concat([
|
|
212
|
+
...(item.txHashes ?? []),
|
|
213
|
+
...(item.internalTxHashes ?? [])
|
|
214
|
+
]);
|
|
215
|
+
}
|
|
216
|
+
});
|
|
217
|
+
return txHashes;
|
|
218
|
+
})
|
|
219
|
+
.flat(),
|
|
220
|
+
operation,
|
|
221
|
+
checkStatuses: steps
|
|
222
|
+
?.map((step) => {
|
|
223
|
+
let checkStatuses = [];
|
|
224
|
+
step.items?.forEach((item) => {
|
|
225
|
+
if (item.checkStatus) {
|
|
226
|
+
checkStatuses.push({
|
|
227
|
+
stepId: step.id,
|
|
228
|
+
checkStatus: item.checkStatus
|
|
229
|
+
});
|
|
230
|
+
}
|
|
231
|
+
});
|
|
232
|
+
return checkStatuses;
|
|
233
|
+
})
|
|
234
|
+
.flat()
|
|
235
|
+
};
|
|
236
|
+
};
|
|
237
|
+
export const calculateUsdValue = (price, amountString) => {
|
|
238
|
+
if (price && price > 0 && amountString && Number(amountString) > 0) {
|
|
239
|
+
try {
|
|
240
|
+
return parseFloat(amountString) * price;
|
|
241
|
+
}
|
|
242
|
+
catch (e) {
|
|
243
|
+
console.error('Failed to parse amount string for USD calculation', amountString, e);
|
|
244
|
+
}
|
|
245
|
+
}
|
|
246
|
+
return undefined;
|
|
247
|
+
};
|
|
248
|
+
//# sourceMappingURL=quote.js.map
|