thirdweb 5.102.7-nightly-3f747601135809eedf86a150752f4b5f12c99776-20250617000426 → 5.103.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/bridge/Routes.js +4 -1
- package/dist/cjs/bridge/Routes.js.map +1 -1
- package/dist/cjs/bridge/Token.js +57 -0
- package/dist/cjs/bridge/Token.js.map +1 -1
- package/dist/cjs/bridge/types/Errors.js +9 -0
- package/dist/cjs/bridge/types/Errors.js.map +1 -1
- package/dist/cjs/exports/react.js +9 -1
- package/dist/cjs/exports/react.js.map +1 -1
- package/dist/cjs/pay/buyWithFiat/getQuote.js +2 -2
- package/dist/cjs/pay/convert/cryptoToFiat.js +3 -3
- package/dist/cjs/pay/convert/cryptoToFiat.js.map +1 -1
- package/dist/cjs/pay/convert/fiatToCrypto.js +3 -3
- package/dist/cjs/pay/convert/fiatToCrypto.js.map +1 -1
- package/dist/cjs/pay/convert/get-token.js +15 -3
- package/dist/cjs/pay/convert/get-token.js.map +1 -1
- package/dist/cjs/pay/utils/commonTypes.js +1 -1
- package/dist/cjs/react/core/adapters/WindowAdapter.js +3 -0
- package/dist/cjs/react/core/adapters/WindowAdapter.js.map +1 -0
- package/dist/cjs/react/core/errors/mapBridgeError.js +27 -0
- package/dist/cjs/react/core/errors/mapBridgeError.js.map +1 -0
- package/dist/cjs/react/core/hooks/others/useChainQuery.js +1 -1
- package/dist/cjs/react/core/hooks/others/useChainQuery.js.map +1 -1
- package/dist/cjs/react/core/hooks/pay/useBuyWithFiatQuotesForProviders.js +40 -0
- package/dist/cjs/react/core/hooks/pay/useBuyWithFiatQuotesForProviders.js.map +1 -0
- package/dist/cjs/react/core/hooks/useBridgeError.js +94 -0
- package/dist/cjs/react/core/hooks/useBridgeError.js.map +1 -0
- package/dist/cjs/react/core/hooks/useBridgePrepare.js +90 -0
- package/dist/cjs/react/core/hooks/useBridgePrepare.js.map +1 -0
- package/dist/cjs/react/core/hooks/useBridgeQuote.js +50 -0
- package/dist/cjs/react/core/hooks/useBridgeQuote.js.map +1 -0
- package/dist/cjs/react/core/hooks/useBridgeRoutes.js +61 -0
- package/dist/cjs/react/core/hooks/useBridgeRoutes.js.map +1 -0
- package/dist/cjs/react/core/hooks/usePaymentMethods.js +154 -0
- package/dist/cjs/react/core/hooks/usePaymentMethods.js.map +1 -0
- package/dist/cjs/react/core/hooks/useStepExecutor.js +408 -0
- package/dist/cjs/react/core/hooks/useStepExecutor.js.map +1 -0
- package/dist/cjs/react/core/hooks/useTransactionDetails.js +126 -0
- package/dist/cjs/react/core/hooks/useTransactionDetails.js.map +1 -0
- package/dist/cjs/react/core/machines/paymentMachine.js +189 -0
- package/dist/cjs/react/core/machines/paymentMachine.js.map +1 -0
- package/dist/cjs/react/web/adapters/WindowAdapter.js +25 -0
- package/dist/cjs/react/web/adapters/WindowAdapter.js.map +1 -0
- package/dist/cjs/react/web/hooks/transaction/useSendTransaction.js +5 -0
- package/dist/cjs/react/web/hooks/transaction/useSendTransaction.js.map +1 -1
- package/dist/cjs/react/web/ui/Bridge/BridgeOrchestrator.js +107 -0
- package/dist/cjs/react/web/ui/Bridge/BridgeOrchestrator.js.map +1 -0
- package/dist/cjs/react/web/ui/Bridge/BuyWidget.js +177 -0
- package/dist/cjs/react/web/ui/Bridge/BuyWidget.js.map +1 -0
- package/dist/cjs/react/web/ui/Bridge/CheckoutWidget.js +154 -0
- package/dist/cjs/react/web/ui/Bridge/CheckoutWidget.js.map +1 -0
- package/dist/cjs/react/web/ui/Bridge/DirectPayment.js +62 -0
- package/dist/cjs/react/web/ui/Bridge/DirectPayment.js.map +1 -0
- package/dist/cjs/react/web/ui/Bridge/ErrorBanner.js +26 -0
- package/dist/cjs/react/web/ui/Bridge/ErrorBanner.js.map +1 -0
- package/dist/cjs/react/web/ui/Bridge/FundWallet.js +122 -0
- package/dist/cjs/react/web/ui/Bridge/FundWallet.js.map +1 -0
- package/dist/cjs/react/web/ui/Bridge/QuoteLoader.js +99 -0
- package/dist/cjs/react/web/ui/Bridge/QuoteLoader.js.map +1 -0
- package/dist/cjs/react/web/ui/Bridge/StepRunner.js +179 -0
- package/dist/cjs/react/web/ui/Bridge/StepRunner.js.map +1 -0
- package/dist/cjs/react/web/ui/Bridge/TransactionPayment.js +117 -0
- package/dist/cjs/react/web/ui/Bridge/TransactionPayment.js.map +1 -0
- package/dist/cjs/react/web/ui/Bridge/TransactionWidget.js +179 -0
- package/dist/cjs/react/web/ui/Bridge/TransactionWidget.js.map +1 -0
- package/dist/cjs/react/web/ui/Bridge/UnsupportedTokenScreen.js +23 -0
- package/dist/cjs/react/web/ui/Bridge/UnsupportedTokenScreen.js.map +1 -0
- package/dist/cjs/react/web/ui/Bridge/common/TokenAndChain.js +101 -0
- package/dist/cjs/react/web/ui/Bridge/common/TokenAndChain.js.map +1 -0
- package/dist/cjs/react/web/ui/Bridge/common/TokenBalanceRow.js +57 -0
- package/dist/cjs/react/web/ui/Bridge/common/TokenBalanceRow.js.map +1 -0
- package/dist/cjs/react/web/ui/Bridge/common/WithHeader.js +27 -0
- package/dist/cjs/react/web/ui/Bridge/common/WithHeader.js.map +1 -0
- package/dist/cjs/react/web/ui/Bridge/payment-details/PaymentDetails.js +121 -0
- package/dist/cjs/react/web/ui/Bridge/payment-details/PaymentDetails.js.map +1 -0
- package/dist/cjs/react/web/ui/Bridge/payment-details/PaymentOverview.js +80 -0
- package/dist/cjs/react/web/ui/Bridge/payment-details/PaymentOverview.js.map +1 -0
- package/dist/cjs/react/web/ui/Bridge/payment-selection/FiatProviderSelection.js +83 -0
- package/dist/cjs/react/web/ui/Bridge/payment-selection/FiatProviderSelection.js.map +1 -0
- package/dist/cjs/react/web/ui/Bridge/payment-selection/PaymentSelection.js +111 -0
- package/dist/cjs/react/web/ui/Bridge/payment-selection/PaymentSelection.js.map +1 -0
- package/dist/cjs/react/web/ui/Bridge/payment-selection/TokenSelection.js +71 -0
- package/dist/cjs/react/web/ui/Bridge/payment-selection/TokenSelection.js.map +1 -0
- package/dist/cjs/react/web/ui/Bridge/payment-selection/WalletFiatSelection.js +54 -0
- package/dist/cjs/react/web/ui/Bridge/payment-selection/WalletFiatSelection.js.map +1 -0
- package/dist/cjs/react/web/ui/Bridge/payment-success/PaymentReceipt.js +140 -0
- package/dist/cjs/react/web/ui/Bridge/payment-success/PaymentReceipt.js.map +1 -0
- package/dist/cjs/react/web/ui/Bridge/payment-success/SuccessScreen.js +61 -0
- package/dist/cjs/react/web/ui/Bridge/payment-success/SuccessScreen.js.map +1 -0
- package/dist/cjs/react/web/ui/ConnectWallet/WalletSelector.js +2 -2
- package/dist/cjs/react/web/ui/ConnectWallet/constants.js +1 -1
- package/dist/cjs/react/web/ui/ConnectWallet/icons/CreditCardIcon.js +12 -0
- package/dist/cjs/react/web/ui/ConnectWallet/icons/CreditCardIcon.js.map +1 -0
- package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/BuyScreen.js.map +1 -1
- package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/DirectPaymentModeScreen.js +3 -1
- package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/DirectPaymentModeScreen.js.map +1 -1
- package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/fiat/currencies.js +4 -0
- package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/fiat/currencies.js.map +1 -1
- package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/main/useUISelectionStates.js.map +1 -1
- package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/swap/FiatValue.js +4 -1
- package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/swap/FiatValue.js.map +1 -1
- package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/swap/StepConnector.js +1 -1
- package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/swap/StepConnector.js.map +1 -1
- package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/swap/WalletRow.js +1 -1
- package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/swap/WalletRow.js.map +1 -1
- package/dist/cjs/react/web/ui/ConnectWallet/screens/formatTokenBalance.js +11 -0
- package/dist/cjs/react/web/ui/ConnectWallet/screens/formatTokenBalance.js.map +1 -1
- package/dist/cjs/react/web/ui/PayEmbed.js +2 -1
- package/dist/cjs/react/web/ui/PayEmbed.js.map +1 -1
- package/dist/cjs/react/web/ui/TransactionButton/DepositScreen.js +6 -5
- package/dist/cjs/react/web/ui/TransactionButton/DepositScreen.js.map +1 -1
- package/dist/cjs/react/web/ui/TransactionButton/ExecutingScreen.js +43 -4
- package/dist/cjs/react/web/ui/TransactionButton/ExecutingScreen.js.map +1 -1
- package/dist/cjs/react/web/ui/TransactionButton/TransactionModal.js +8 -4
- package/dist/cjs/react/web/ui/TransactionButton/TransactionModal.js.map +1 -1
- package/dist/cjs/react/web/ui/components/ChainName.js +2 -1
- package/dist/cjs/react/web/ui/components/ChainName.js.map +1 -1
- package/dist/cjs/react/web/ui/components/TokenIcon.js +6 -3
- package/dist/cjs/react/web/ui/components/TokenIcon.js.map +1 -1
- package/dist/cjs/react/web/ui/components/buttons.js +1 -5
- package/dist/cjs/react/web/ui/components/buttons.js.map +1 -1
- package/dist/cjs/stories/Bridge/BridgeOrchestrator.stories.js +228 -0
- package/dist/cjs/stories/Bridge/BridgeOrchestrator.stories.js.map +1 -0
- package/dist/cjs/stories/Bridge/DirectPayment.stories.js +194 -0
- package/dist/cjs/stories/Bridge/DirectPayment.stories.js.map +1 -0
- package/dist/cjs/stories/Bridge/ErrorBanner.stories.js +153 -0
- package/dist/cjs/stories/Bridge/ErrorBanner.stories.js.map +1 -0
- package/dist/cjs/stories/Bridge/FundWallet.stories.js +173 -0
- package/dist/cjs/stories/Bridge/FundWallet.stories.js.map +1 -0
- package/dist/cjs/stories/Bridge/PaymentDetails.stories.js +430 -0
- package/dist/cjs/stories/Bridge/PaymentDetails.stories.js.map +1 -0
- package/dist/cjs/stories/Bridge/PaymentSelection.stories.js +151 -0
- package/dist/cjs/stories/Bridge/PaymentSelection.stories.js.map +1 -0
- package/dist/cjs/stories/Bridge/StepRunner.stories.js +82 -0
- package/dist/cjs/stories/Bridge/StepRunner.stories.js.map +1 -0
- package/dist/cjs/stories/Bridge/SuccessScreen.stories.js +180 -0
- package/dist/cjs/stories/Bridge/SuccessScreen.stories.js.map +1 -0
- package/dist/cjs/stories/Bridge/TransactionPayment.stories.js +139 -0
- package/dist/cjs/stories/Bridge/TransactionPayment.stories.js.map +1 -0
- package/dist/cjs/stories/Bridge/UnsupportedTokenScreen.stories.js +94 -0
- package/dist/cjs/stories/Bridge/UnsupportedTokenScreen.stories.js.map +1 -0
- package/dist/cjs/stories/Bridge/fixtures.js +731 -0
- package/dist/cjs/stories/Bridge/fixtures.js.map +1 -0
- package/dist/cjs/stories/TokenBalanceRow.stories.js +81 -0
- package/dist/cjs/stories/TokenBalanceRow.stories.js.map +1 -0
- package/dist/cjs/stories/WalletRow.stories.js +120 -0
- package/dist/cjs/stories/WalletRow.stories.js.map +1 -0
- package/dist/cjs/stories/utils.js +19 -1
- package/dist/cjs/stories/utils.js.map +1 -1
- package/dist/cjs/version.js +1 -1
- package/dist/cjs/version.js.map +1 -1
- package/dist/esm/bridge/Routes.js +4 -1
- package/dist/esm/bridge/Routes.js.map +1 -1
- package/dist/esm/bridge/Token.js +56 -0
- package/dist/esm/bridge/Token.js.map +1 -1
- package/dist/esm/bridge/types/Errors.js +9 -0
- package/dist/esm/bridge/types/Errors.js.map +1 -1
- package/dist/esm/exports/react.js +4 -0
- package/dist/esm/exports/react.js.map +1 -1
- package/dist/esm/pay/buyWithFiat/getQuote.js +2 -2
- package/dist/esm/pay/convert/cryptoToFiat.js +4 -4
- package/dist/esm/pay/convert/cryptoToFiat.js.map +1 -1
- package/dist/esm/pay/convert/fiatToCrypto.js +4 -4
- package/dist/esm/pay/convert/fiatToCrypto.js.map +1 -1
- package/dist/esm/pay/convert/get-token.js +15 -3
- package/dist/esm/pay/convert/get-token.js.map +1 -1
- package/dist/esm/pay/utils/commonTypes.js +1 -1
- package/dist/esm/react/core/adapters/WindowAdapter.js +2 -0
- package/dist/esm/react/core/adapters/WindowAdapter.js.map +1 -0
- package/dist/esm/react/core/errors/mapBridgeError.js +23 -0
- package/dist/esm/react/core/errors/mapBridgeError.js.map +1 -0
- package/dist/esm/react/core/hooks/others/useChainQuery.js +1 -1
- package/dist/esm/react/core/hooks/others/useChainQuery.js.map +1 -1
- package/dist/esm/react/core/hooks/pay/useBuyWithFiatQuotesForProviders.js +37 -0
- package/dist/esm/react/core/hooks/pay/useBuyWithFiatQuotesForProviders.js.map +1 -0
- package/dist/esm/react/core/hooks/useBridgeError.js +91 -0
- package/dist/esm/react/core/hooks/useBridgeError.js.map +1 -0
- package/dist/esm/react/core/hooks/useBridgePrepare.js +87 -0
- package/dist/esm/react/core/hooks/useBridgePrepare.js.map +1 -0
- package/dist/esm/react/core/hooks/useBridgeQuote.js +47 -0
- package/dist/esm/react/core/hooks/useBridgeQuote.js.map +1 -0
- package/dist/esm/react/core/hooks/useBridgeRoutes.js +58 -0
- package/dist/esm/react/core/hooks/useBridgeRoutes.js.map +1 -0
- package/dist/esm/react/core/hooks/usePaymentMethods.js +151 -0
- package/dist/esm/react/core/hooks/usePaymentMethods.js.map +1 -0
- package/dist/esm/react/core/hooks/useStepExecutor.js +405 -0
- package/dist/esm/react/core/hooks/useStepExecutor.js.map +1 -0
- package/dist/esm/react/core/hooks/useTransactionDetails.js +123 -0
- package/dist/esm/react/core/hooks/useTransactionDetails.js.map +1 -0
- package/dist/esm/react/core/machines/paymentMachine.js +186 -0
- package/dist/esm/react/core/machines/paymentMachine.js.map +1 -0
- package/dist/esm/react/web/adapters/WindowAdapter.js +21 -0
- package/dist/esm/react/web/adapters/WindowAdapter.js.map +1 -0
- package/dist/esm/react/web/hooks/transaction/useSendTransaction.js +5 -0
- package/dist/esm/react/web/hooks/transaction/useSendTransaction.js.map +1 -1
- package/dist/esm/react/web/ui/Bridge/BridgeOrchestrator.js +104 -0
- package/dist/esm/react/web/ui/Bridge/BridgeOrchestrator.js.map +1 -0
- package/dist/esm/react/web/ui/Bridge/BuyWidget.js +174 -0
- package/dist/esm/react/web/ui/Bridge/BuyWidget.js.map +1 -0
- package/dist/esm/react/web/ui/Bridge/CheckoutWidget.js +151 -0
- package/dist/esm/react/web/ui/Bridge/CheckoutWidget.js.map +1 -0
- package/dist/esm/react/web/ui/Bridge/DirectPayment.js +59 -0
- package/dist/esm/react/web/ui/Bridge/DirectPayment.js.map +1 -0
- package/dist/esm/react/web/ui/Bridge/ErrorBanner.js +23 -0
- package/dist/esm/react/web/ui/Bridge/ErrorBanner.js.map +1 -0
- package/dist/esm/react/web/ui/Bridge/FundWallet.js +119 -0
- package/dist/esm/react/web/ui/Bridge/FundWallet.js.map +1 -0
- package/dist/esm/react/web/ui/Bridge/QuoteLoader.js +96 -0
- package/dist/esm/react/web/ui/Bridge/QuoteLoader.js.map +1 -0
- package/dist/esm/react/web/ui/Bridge/StepRunner.js +176 -0
- package/dist/esm/react/web/ui/Bridge/StepRunner.js.map +1 -0
- package/dist/esm/react/web/ui/Bridge/TransactionPayment.js +114 -0
- package/dist/esm/react/web/ui/Bridge/TransactionPayment.js.map +1 -0
- package/dist/esm/react/web/ui/Bridge/TransactionWidget.js +176 -0
- package/dist/esm/react/web/ui/Bridge/TransactionWidget.js.map +1 -0
- package/dist/esm/react/web/ui/Bridge/UnsupportedTokenScreen.js +20 -0
- package/dist/esm/react/web/ui/Bridge/UnsupportedTokenScreen.js.map +1 -0
- package/dist/esm/react/web/ui/Bridge/common/TokenAndChain.js +96 -0
- package/dist/esm/react/web/ui/Bridge/common/TokenAndChain.js.map +1 -0
- package/dist/esm/react/web/ui/Bridge/common/TokenBalanceRow.js +54 -0
- package/dist/esm/react/web/ui/Bridge/common/TokenBalanceRow.js.map +1 -0
- package/dist/esm/react/web/ui/Bridge/common/WithHeader.js +24 -0
- package/dist/esm/react/web/ui/Bridge/common/WithHeader.js.map +1 -0
- package/dist/esm/react/web/ui/Bridge/payment-details/PaymentDetails.js +119 -0
- package/dist/esm/react/web/ui/Bridge/payment-details/PaymentDetails.js.map +1 -0
- package/dist/esm/react/web/ui/Bridge/payment-details/PaymentOverview.js +77 -0
- package/dist/esm/react/web/ui/Bridge/payment-details/PaymentOverview.js.map +1 -0
- package/dist/esm/react/web/ui/Bridge/payment-selection/FiatProviderSelection.js +80 -0
- package/dist/esm/react/web/ui/Bridge/payment-selection/FiatProviderSelection.js.map +1 -0
- package/dist/esm/react/web/ui/Bridge/payment-selection/PaymentSelection.js +108 -0
- package/dist/esm/react/web/ui/Bridge/payment-selection/PaymentSelection.js.map +1 -0
- package/dist/esm/react/web/ui/Bridge/payment-selection/TokenSelection.js +68 -0
- package/dist/esm/react/web/ui/Bridge/payment-selection/TokenSelection.js.map +1 -0
- package/dist/esm/react/web/ui/Bridge/payment-selection/WalletFiatSelection.js +51 -0
- package/dist/esm/react/web/ui/Bridge/payment-selection/WalletFiatSelection.js.map +1 -0
- package/dist/esm/react/web/ui/Bridge/payment-success/PaymentReceipt.js +137 -0
- package/dist/esm/react/web/ui/Bridge/payment-success/PaymentReceipt.js.map +1 -0
- package/dist/esm/react/web/ui/Bridge/payment-success/SuccessScreen.js +58 -0
- package/dist/esm/react/web/ui/Bridge/payment-success/SuccessScreen.js.map +1 -0
- package/dist/esm/react/web/ui/ConnectWallet/WalletSelector.js +2 -2
- package/dist/esm/react/web/ui/ConnectWallet/constants.js +1 -1
- package/dist/esm/react/web/ui/ConnectWallet/icons/CreditCardIcon.js +8 -0
- package/dist/esm/react/web/ui/ConnectWallet/icons/CreditCardIcon.js.map +1 -0
- package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/BuyScreen.js.map +1 -1
- package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/DirectPaymentModeScreen.js +3 -1
- package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/DirectPaymentModeScreen.js.map +1 -1
- package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/fiat/currencies.js +3 -0
- package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/fiat/currencies.js.map +1 -1
- package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/main/useUISelectionStates.js.map +1 -1
- package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/swap/FiatValue.js +4 -1
- package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/swap/FiatValue.js.map +1 -1
- package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/swap/StepConnector.js +1 -1
- package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/swap/StepConnector.js.map +1 -1
- package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/swap/WalletRow.js +1 -1
- package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/swap/WalletRow.js.map +1 -1
- package/dist/esm/react/web/ui/ConnectWallet/screens/formatTokenBalance.js +9 -0
- package/dist/esm/react/web/ui/ConnectWallet/screens/formatTokenBalance.js.map +1 -1
- package/dist/esm/react/web/ui/PayEmbed.js +2 -1
- package/dist/esm/react/web/ui/PayEmbed.js.map +1 -1
- package/dist/esm/react/web/ui/TransactionButton/DepositScreen.js +6 -5
- package/dist/esm/react/web/ui/TransactionButton/DepositScreen.js.map +1 -1
- package/dist/esm/react/web/ui/TransactionButton/ExecutingScreen.js +45 -6
- package/dist/esm/react/web/ui/TransactionButton/ExecutingScreen.js.map +1 -1
- package/dist/esm/react/web/ui/TransactionButton/TransactionModal.js +8 -4
- package/dist/esm/react/web/ui/TransactionButton/TransactionModal.js.map +1 -1
- package/dist/esm/react/web/ui/components/ChainName.js +2 -2
- package/dist/esm/react/web/ui/components/ChainName.js.map +1 -1
- package/dist/esm/react/web/ui/components/TokenIcon.js +7 -4
- package/dist/esm/react/web/ui/components/TokenIcon.js.map +1 -1
- package/dist/esm/react/web/ui/components/buttons.js +1 -5
- package/dist/esm/react/web/ui/components/buttons.js.map +1 -1
- package/dist/esm/stories/Bridge/BridgeOrchestrator.stories.js +226 -0
- package/dist/esm/stories/Bridge/BridgeOrchestrator.stories.js.map +1 -0
- package/dist/esm/stories/Bridge/DirectPayment.stories.js +191 -0
- package/dist/esm/stories/Bridge/DirectPayment.stories.js.map +1 -0
- package/dist/esm/stories/Bridge/ErrorBanner.stories.js +150 -0
- package/dist/esm/stories/Bridge/ErrorBanner.stories.js.map +1 -0
- package/dist/esm/stories/Bridge/FundWallet.stories.js +170 -0
- package/dist/esm/stories/Bridge/FundWallet.stories.js.map +1 -0
- package/dist/esm/stories/Bridge/PaymentDetails.stories.js +427 -0
- package/dist/esm/stories/Bridge/PaymentDetails.stories.js.map +1 -0
- package/dist/esm/stories/Bridge/PaymentSelection.stories.js +148 -0
- package/dist/esm/stories/Bridge/PaymentSelection.stories.js.map +1 -0
- package/dist/esm/stories/Bridge/StepRunner.stories.js +79 -0
- package/dist/esm/stories/Bridge/StepRunner.stories.js.map +1 -0
- package/dist/esm/stories/Bridge/SuccessScreen.stories.js +177 -0
- package/dist/esm/stories/Bridge/SuccessScreen.stories.js.map +1 -0
- package/dist/esm/stories/Bridge/TransactionPayment.stories.js +136 -0
- package/dist/esm/stories/Bridge/TransactionPayment.stories.js.map +1 -0
- package/dist/esm/stories/Bridge/UnsupportedTokenScreen.stories.js +91 -0
- package/dist/esm/stories/Bridge/UnsupportedTokenScreen.stories.js.map +1 -0
- package/dist/esm/stories/Bridge/fixtures.js +728 -0
- package/dist/esm/stories/Bridge/fixtures.js.map +1 -0
- package/dist/esm/stories/TokenBalanceRow.stories.js +78 -0
- package/dist/esm/stories/TokenBalanceRow.stories.js.map +1 -0
- package/dist/esm/stories/WalletRow.stories.js +117 -0
- package/dist/esm/stories/WalletRow.stories.js.map +1 -0
- package/dist/esm/stories/utils.js +17 -0
- package/dist/esm/stories/utils.js.map +1 -1
- package/dist/esm/version.js +1 -1
- package/dist/esm/version.js.map +1 -1
- package/dist/types/bridge/Routes.d.ts +1 -0
- package/dist/types/bridge/Routes.d.ts.map +1 -1
- package/dist/types/bridge/Token.d.ts +48 -1
- package/dist/types/bridge/Token.d.ts.map +1 -1
- package/dist/types/bridge/types/BridgeAction.d.ts +1 -1
- package/dist/types/bridge/types/BridgeAction.d.ts.map +1 -1
- package/dist/types/bridge/types/Errors.d.ts +1 -0
- package/dist/types/bridge/types/Errors.d.ts.map +1 -1
- package/dist/types/exports/react.d.ts +4 -0
- package/dist/types/exports/react.d.ts.map +1 -1
- package/dist/types/pay/convert/get-token.d.ts +2 -1
- package/dist/types/pay/convert/get-token.d.ts.map +1 -1
- package/dist/types/pay/utils/commonTypes.d.ts +1 -1
- package/dist/types/react/core/adapters/WindowAdapter.d.ts +14 -0
- package/dist/types/react/core/adapters/WindowAdapter.d.ts.map +1 -0
- package/dist/types/react/core/errors/mapBridgeError.d.ts +17 -0
- package/dist/types/react/core/errors/mapBridgeError.d.ts.map +1 -0
- package/dist/types/react/core/hooks/connection/ConnectButtonProps.d.ts +14 -6
- package/dist/types/react/core/hooks/connection/ConnectButtonProps.d.ts.map +1 -1
- package/dist/types/react/core/hooks/pay/useBuyWithFiatQuotesForProviders.d.ts +54 -0
- package/dist/types/react/core/hooks/pay/useBuyWithFiatQuotesForProviders.d.ts.map +1 -0
- package/dist/types/react/core/hooks/transaction/useSendTransaction.d.ts +1 -1
- package/dist/types/react/core/hooks/transaction/useSendTransaction.d.ts.map +1 -1
- package/dist/types/react/core/hooks/useBridgeError.d.ts +72 -0
- package/dist/types/react/core/hooks/useBridgeError.d.ts.map +1 -0
- package/dist/types/react/core/hooks/useBridgePrepare.d.ts +75 -0
- package/dist/types/react/core/hooks/useBridgePrepare.d.ts.map +1 -0
- package/dist/types/react/core/hooks/useBridgeQuote.d.ts +14 -0
- package/dist/types/react/core/hooks/useBridgeQuote.d.ts.map +1 -0
- package/dist/types/react/core/hooks/useBridgeRoutes.d.ts +30 -0
- package/dist/types/react/core/hooks/useBridgeRoutes.d.ts.map +1 -0
- package/dist/types/react/core/hooks/usePaymentMethods.d.ts +36 -0
- package/dist/types/react/core/hooks/usePaymentMethods.d.ts.map +1 -0
- package/dist/types/react/core/hooks/useStepExecutor.d.ts +67 -0
- package/dist/types/react/core/hooks/useStepExecutor.d.ts.map +1 -0
- package/dist/types/react/core/hooks/useTransactionDetails.d.ts +31 -0
- package/dist/types/react/core/hooks/useTransactionDetails.d.ts.map +1 -0
- package/dist/types/react/core/machines/paymentMachine.d.ts +86 -0
- package/dist/types/react/core/machines/paymentMachine.d.ts.map +1 -0
- package/dist/types/react/web/adapters/WindowAdapter.d.ts +19 -0
- package/dist/types/react/web/adapters/WindowAdapter.d.ts.map +1 -0
- package/dist/types/react/web/hooks/transaction/useSendTransaction.d.ts +5 -0
- package/dist/types/react/web/hooks/transaction/useSendTransaction.d.ts.map +1 -1
- package/dist/types/react/web/ui/Bridge/BridgeOrchestrator.d.ts +78 -0
- package/dist/types/react/web/ui/Bridge/BridgeOrchestrator.d.ts.map +1 -0
- package/dist/types/react/web/ui/Bridge/BuyWidget.d.ts +325 -0
- package/dist/types/react/web/ui/Bridge/BuyWidget.d.ts.map +1 -0
- package/dist/types/react/web/ui/Bridge/CheckoutWidget.d.ts +328 -0
- package/dist/types/react/web/ui/Bridge/CheckoutWidget.d.ts.map +1 -0
- package/dist/types/react/web/ui/Bridge/DirectPayment.d.ts +27 -0
- package/dist/types/react/web/ui/Bridge/DirectPayment.d.ts.map +1 -0
- package/dist/types/react/web/ui/Bridge/ErrorBanner.d.ts +17 -0
- package/dist/types/react/web/ui/Bridge/ErrorBanner.d.ts.map +1 -0
- package/dist/types/react/web/ui/Bridge/FundWallet.d.ts +35 -0
- package/dist/types/react/web/ui/Bridge/FundWallet.d.ts.map +1 -0
- package/dist/types/react/web/ui/Bridge/QuoteLoader.d.ts +57 -0
- package/dist/types/react/web/ui/Bridge/QuoteLoader.d.ts.map +1 -0
- package/dist/types/react/web/ui/Bridge/StepRunner.d.ts +39 -0
- package/dist/types/react/web/ui/Bridge/StepRunner.d.ts.map +1 -0
- package/dist/types/react/web/ui/Bridge/TransactionPayment.d.ts +27 -0
- package/dist/types/react/web/ui/Bridge/TransactionPayment.d.ts.map +1 -0
- package/dist/types/react/web/ui/Bridge/TransactionWidget.d.ts +355 -0
- package/dist/types/react/web/ui/Bridge/TransactionWidget.d.ts.map +1 -0
- package/dist/types/react/web/ui/Bridge/UnsupportedTokenScreen.d.ts +13 -0
- package/dist/types/react/web/ui/Bridge/UnsupportedTokenScreen.d.ts.map +1 -0
- package/dist/types/react/web/ui/Bridge/common/TokenAndChain.d.ts +16 -0
- package/dist/types/react/web/ui/Bridge/common/TokenAndChain.d.ts.map +1 -0
- package/dist/types/react/web/ui/Bridge/common/TokenBalanceRow.d.ts +10 -0
- package/dist/types/react/web/ui/Bridge/common/TokenBalanceRow.d.ts.map +1 -0
- package/dist/types/react/web/ui/Bridge/common/WithHeader.d.ts +9 -0
- package/dist/types/react/web/ui/Bridge/common/WithHeader.d.ts.map +1 -0
- package/dist/types/react/web/ui/Bridge/payment-details/PaymentDetails.d.ts +36 -0
- package/dist/types/react/web/ui/Bridge/payment-details/PaymentDetails.d.ts.map +1 -0
- package/dist/types/react/web/ui/Bridge/payment-details/PaymentOverview.d.ts +15 -0
- package/dist/types/react/web/ui/Bridge/payment-details/PaymentOverview.d.ts.map +1 -0
- package/dist/types/react/web/ui/Bridge/payment-selection/FiatProviderSelection.d.ts +12 -0
- package/dist/types/react/web/ui/Bridge/payment-selection/FiatProviderSelection.d.ts.map +1 -0
- package/dist/types/react/web/ui/Bridge/payment-selection/PaymentSelection.d.ts +50 -0
- package/dist/types/react/web/ui/Bridge/payment-selection/PaymentSelection.d.ts.map +1 -0
- package/dist/types/react/web/ui/Bridge/payment-selection/TokenSelection.d.ts +15 -0
- package/dist/types/react/web/ui/Bridge/payment-selection/TokenSelection.d.ts.map +1 -0
- package/dist/types/react/web/ui/Bridge/payment-selection/WalletFiatSelection.d.ts +12 -0
- package/dist/types/react/web/ui/Bridge/payment-selection/WalletFiatSelection.d.ts.map +1 -0
- package/dist/types/react/web/ui/Bridge/payment-success/PaymentReceipt.d.ts +24 -0
- package/dist/types/react/web/ui/Bridge/payment-success/PaymentReceipt.d.ts.map +1 -0
- package/dist/types/react/web/ui/Bridge/payment-success/SuccessScreen.d.ts +28 -0
- package/dist/types/react/web/ui/Bridge/payment-success/SuccessScreen.d.ts.map +1 -0
- package/dist/types/react/web/ui/ConnectWallet/constants.d.ts +1 -1
- package/dist/types/react/web/ui/ConnectWallet/icons/CreditCardIcon.d.ts +6 -0
- package/dist/types/react/web/ui/ConnectWallet/icons/CreditCardIcon.d.ts.map +1 -0
- package/dist/types/react/web/ui/ConnectWallet/screens/Buy/BuyScreen.d.ts.map +1 -1
- package/dist/types/react/web/ui/ConnectWallet/screens/Buy/DirectPaymentModeScreen.d.ts.map +1 -1
- package/dist/types/react/web/ui/ConnectWallet/screens/Buy/fiat/currencies.d.ts +4 -0
- package/dist/types/react/web/ui/ConnectWallet/screens/Buy/fiat/currencies.d.ts.map +1 -1
- package/dist/types/react/web/ui/ConnectWallet/screens/Buy/main/useUISelectionStates.d.ts +4 -1
- package/dist/types/react/web/ui/ConnectWallet/screens/Buy/main/useUISelectionStates.d.ts.map +1 -1
- package/dist/types/react/web/ui/ConnectWallet/screens/Buy/swap/FiatValue.d.ts.map +1 -1
- package/dist/types/react/web/ui/ConnectWallet/screens/Buy/swap/StepConnector.d.ts.map +1 -1
- package/dist/types/react/web/ui/ConnectWallet/screens/Buy/swap/WalletRow.d.ts.map +1 -1
- package/dist/types/react/web/ui/ConnectWallet/screens/formatTokenBalance.d.ts +2 -0
- package/dist/types/react/web/ui/ConnectWallet/screens/formatTokenBalance.d.ts.map +1 -1
- package/dist/types/react/web/ui/PayEmbed.d.ts.map +1 -1
- package/dist/types/react/web/ui/TransactionButton/DepositScreen.d.ts.map +1 -1
- package/dist/types/react/web/ui/TransactionButton/ExecutingScreen.d.ts +2 -0
- package/dist/types/react/web/ui/TransactionButton/ExecutingScreen.d.ts.map +1 -1
- package/dist/types/react/web/ui/TransactionButton/TransactionModal.d.ts.map +1 -1
- package/dist/types/react/web/ui/components/ChainName.d.ts +3 -0
- package/dist/types/react/web/ui/components/ChainName.d.ts.map +1 -1
- package/dist/types/react/web/ui/components/TokenIcon.d.ts.map +1 -1
- package/dist/types/react/web/ui/components/buttons.d.ts.map +1 -1
- package/dist/types/stories/Bridge/BridgeOrchestrator.stories.d.ts +90 -0
- package/dist/types/stories/Bridge/BridgeOrchestrator.stories.d.ts.map +1 -0
- package/dist/types/stories/Bridge/DirectPayment.stories.d.ts +65 -0
- package/dist/types/stories/Bridge/DirectPayment.stories.d.ts.map +1 -0
- package/dist/types/stories/Bridge/ErrorBanner.stories.d.ts +55 -0
- package/dist/types/stories/Bridge/ErrorBanner.stories.d.ts.map +1 -0
- package/dist/types/stories/Bridge/FundWallet.stories.d.ts +63 -0
- package/dist/types/stories/Bridge/FundWallet.stories.d.ts.map +1 -0
- package/dist/types/stories/Bridge/PaymentDetails.stories.d.ts +70 -0
- package/dist/types/stories/Bridge/PaymentDetails.stories.d.ts.map +1 -0
- package/dist/types/stories/Bridge/PaymentSelection.stories.d.ts +65 -0
- package/dist/types/stories/Bridge/PaymentSelection.stories.d.ts.map +1 -0
- package/dist/types/stories/Bridge/StepRunner.stories.d.ts +61 -0
- package/dist/types/stories/Bridge/StepRunner.stories.d.ts.map +1 -0
- package/dist/types/stories/Bridge/SuccessScreen.stories.d.ts +58 -0
- package/dist/types/stories/Bridge/SuccessScreen.stories.d.ts.map +1 -0
- package/dist/types/stories/Bridge/TransactionPayment.stories.d.ts +55 -0
- package/dist/types/stories/Bridge/TransactionPayment.stories.d.ts.map +1 -0
- package/dist/types/stories/Bridge/UnsupportedTokenScreen.stories.d.ts +39 -0
- package/dist/types/stories/Bridge/UnsupportedTokenScreen.stories.d.ts.map +1 -0
- package/dist/types/stories/Bridge/fixtures.d.ts +37 -0
- package/dist/types/stories/Bridge/fixtures.d.ts.map +1 -0
- package/dist/types/stories/TokenBalanceRow.stories.d.ts +53 -0
- package/dist/types/stories/TokenBalanceRow.stories.d.ts.map +1 -0
- package/dist/types/stories/WalletRow.stories.d.ts +63 -0
- package/dist/types/stories/WalletRow.stories.d.ts.map +1 -0
- package/dist/types/stories/utils.d.ts +5 -0
- package/dist/types/stories/utils.d.ts.map +1 -1
- package/dist/types/version.d.ts +1 -1
- package/dist/types/version.d.ts.map +1 -1
- package/package.json +2 -1
- package/src/bridge/Routes.ts +5 -0
- package/src/bridge/Token.ts +82 -1
- package/src/bridge/types/BridgeAction.ts +1 -1
- package/src/bridge/types/Errors.ts +11 -0
- package/src/exports/react.ts +16 -0
- package/src/pay/buyWithFiat/getQuote.ts +2 -2
- package/src/pay/convert/cryptoToFiat.ts +4 -4
- package/src/pay/convert/fiatToCrypto.ts +4 -4
- package/src/pay/convert/get-token.ts +17 -4
- package/src/pay/utils/commonTypes.ts +1 -1
- package/src/react/components.md +134 -0
- package/src/react/core/adapters/.keep +2 -0
- package/src/react/core/adapters/WindowAdapter.ts +13 -0
- package/src/react/core/errors/.keep +2 -0
- package/src/react/core/errors/mapBridgeError.test.ts +98 -0
- package/src/react/core/errors/mapBridgeError.ts +25 -0
- package/src/react/core/hooks/connection/ConnectButtonProps.ts +42 -37
- package/src/react/core/hooks/others/useChainQuery.ts +1 -1
- package/src/react/core/hooks/pay/useBuyWithFiatQuotesForProviders.ts +100 -0
- package/src/react/core/hooks/transaction/useSendTransaction.ts +1 -1
- package/src/react/core/hooks/useBridgeError.test.ts +172 -0
- package/src/react/core/hooks/useBridgeError.ts +149 -0
- package/src/react/core/hooks/useBridgePrepare.test.ts +161 -0
- package/src/react/core/hooks/useBridgePrepare.ts +133 -0
- package/src/react/core/hooks/useBridgeQuote.ts +67 -0
- package/src/react/core/hooks/useBridgeRoutes.test.ts +137 -0
- package/src/react/core/hooks/useBridgeRoutes.ts +75 -0
- package/src/react/core/hooks/usePaymentMethods.test.ts +336 -0
- package/src/react/core/hooks/usePaymentMethods.ts +203 -0
- package/src/react/core/hooks/useStepExecutor.ts +606 -0
- package/src/react/core/hooks/useTransactionDetails.ts +177 -0
- package/src/react/core/hooks/wallets/useAutoConnectCore.test.tsx +1 -57
- package/src/react/core/machines/.keep +2 -0
- package/src/react/core/machines/paymentMachine.test.ts +691 -0
- package/src/react/core/machines/paymentMachine.ts +290 -0
- package/src/react/core/types/.keep +2 -0
- package/src/react/core/utils/wallet.test.ts +77 -0
- package/src/react/native/flows/.keep +2 -0
- package/src/react/web/adapters/WindowAdapter.ts +23 -0
- package/src/react/web/adapters/adapters.test.ts +38 -0
- package/src/react/web/flows/.keep +2 -0
- package/src/react/web/hooks/transaction/useSendTransaction.tsx +5 -0
- package/src/react/web/ui/Bridge/BridgeOrchestrator.tsx +357 -0
- package/src/react/web/ui/Bridge/BuyWidget.tsx +494 -0
- package/src/react/web/ui/Bridge/CheckoutWidget.tsx +484 -0
- package/src/react/web/ui/Bridge/DirectPayment.tsx +234 -0
- package/src/react/web/ui/Bridge/ErrorBanner.tsx +86 -0
- package/src/react/web/ui/Bridge/FundWallet.tsx +341 -0
- package/src/react/web/ui/Bridge/QuoteLoader.tsx +219 -0
- package/src/react/web/ui/Bridge/StepRunner.tsx +417 -0
- package/src/react/web/ui/Bridge/TransactionPayment.tsx +403 -0
- package/src/react/web/ui/Bridge/TransactionWidget.tsx +502 -0
- package/src/react/web/ui/Bridge/UnsupportedTokenScreen.tsx +84 -0
- package/src/react/web/ui/Bridge/common/TokenAndChain.tsx +203 -0
- package/src/react/web/ui/Bridge/common/TokenBalanceRow.tsx +112 -0
- package/src/react/web/ui/Bridge/common/WithHeader.tsx +65 -0
- package/src/react/web/ui/Bridge/payment-details/PaymentDetails.tsx +318 -0
- package/src/react/web/ui/Bridge/payment-details/PaymentOverview.tsx +301 -0
- package/src/react/web/ui/Bridge/payment-selection/FiatProviderSelection.tsx +186 -0
- package/src/react/web/ui/Bridge/payment-selection/PaymentSelection.tsx +268 -0
- package/src/react/web/ui/Bridge/payment-selection/TokenSelection.tsx +282 -0
- package/src/react/web/ui/Bridge/payment-selection/WalletFiatSelection.tsx +172 -0
- package/src/react/web/ui/Bridge/payment-success/PaymentReceipt.tsx +392 -0
- package/src/react/web/ui/Bridge/payment-success/SuccessScreen.tsx +155 -0
- package/src/react/web/ui/ConnectWallet/Details.test.tsx +2 -2
- package/src/react/web/ui/ConnectWallet/WalletSelector.tsx +2 -2
- package/src/react/web/ui/ConnectWallet/constants.ts +1 -1
- package/src/react/web/ui/ConnectWallet/icons/CreditCardIcon.tsx +24 -0
- package/src/react/web/ui/ConnectWallet/screens/Buy/BuyScreen.tsx +5 -2
- package/src/react/web/ui/ConnectWallet/screens/Buy/DirectPaymentModeScreen.tsx +3 -1
- package/src/react/web/ui/ConnectWallet/screens/Buy/fiat/currencies.tsx +8 -0
- package/src/react/web/ui/ConnectWallet/screens/Buy/main/useUISelectionStates.ts +3 -2
- package/src/react/web/ui/ConnectWallet/screens/Buy/swap/FiatValue.tsx +7 -1
- package/src/react/web/ui/ConnectWallet/screens/Buy/swap/StepConnector.tsx +1 -0
- package/src/react/web/ui/ConnectWallet/screens/Buy/swap/WalletRow.tsx +7 -3
- package/src/react/web/ui/ConnectWallet/screens/formatTokenBalance.ts +22 -0
- package/src/react/web/ui/PayEmbed.tsx +2 -0
- package/src/react/web/ui/TransactionButton/DepositScreen.tsx +10 -5
- package/src/react/web/ui/TransactionButton/ExecutingScreen.tsx +78 -25
- package/src/react/web/ui/TransactionButton/TransactionModal.tsx +15 -9
- package/src/react/web/ui/components/ChainName.tsx +4 -2
- package/src/react/web/ui/components/TokenIcon.tsx +7 -4
- package/src/react/web/ui/components/buttons.tsx +1 -5
- package/src/stories/Bridge/BridgeOrchestrator.stories.tsx +267 -0
- package/src/stories/Bridge/DirectPayment.stories.tsx +225 -0
- package/src/stories/Bridge/ErrorBanner.stories.tsx +184 -0
- package/src/stories/Bridge/FundWallet.stories.tsx +196 -0
- package/src/stories/Bridge/PaymentDetails.stories.tsx +501 -0
- package/src/stories/Bridge/PaymentSelection.stories.tsx +177 -0
- package/src/stories/Bridge/StepRunner.stories.tsx +109 -0
- package/src/stories/Bridge/SuccessScreen.stories.tsx +217 -0
- package/src/stories/Bridge/TransactionPayment.stories.tsx +170 -0
- package/src/stories/Bridge/UnsupportedTokenScreen.stories.tsx +119 -0
- package/src/stories/Bridge/fixtures.ts +802 -0
- package/src/stories/TokenBalanceRow.stories.tsx +169 -0
- package/src/stories/WalletRow.stories.tsx +166 -0
- package/src/stories/utils.tsx +35 -0
- package/src/version.ts +1 -1
- package/src/wallets/connection/autoConnectCore.test.ts +0 -53
package/src/exports/react.ts
CHANGED
@@ -130,6 +130,22 @@ export type { AutoConnectProps } from "../wallets/connection/types.js";
|
|
130
130
|
// auth
|
131
131
|
export type { SiweAuthOptions } from "../react/core/hooks/auth/useSiweAuth.js";
|
132
132
|
|
133
|
+
export {
|
134
|
+
BuyWidget,
|
135
|
+
type BuyWidgetProps,
|
136
|
+
} from "../react/web/ui/Bridge/BuyWidget.js";
|
137
|
+
export {
|
138
|
+
CheckoutWidget,
|
139
|
+
type CheckoutWidgetProps,
|
140
|
+
} from "../react/web/ui/Bridge/CheckoutWidget.js";
|
141
|
+
export {
|
142
|
+
TransactionWidget,
|
143
|
+
type TransactionWidgetProps,
|
144
|
+
} from "../react/web/ui/Bridge/TransactionWidget.js";
|
145
|
+
export {
|
146
|
+
useBridgeRoutes,
|
147
|
+
type UseBridgeRoutesParams,
|
148
|
+
} from "../react/core/hooks/useBridgeRoutes.js";
|
133
149
|
export {
|
134
150
|
PayEmbed,
|
135
151
|
type PayEmbedProps,
|
@@ -291,9 +291,9 @@ export async function getBuyWithFiatQuote(
|
|
291
291
|
provider?: FiatProvider,
|
292
292
|
): "stripe" | "coinbase" | "transak" => {
|
293
293
|
switch (provider) {
|
294
|
-
case "
|
294
|
+
case "stripe":
|
295
295
|
return "stripe";
|
296
|
-
case "
|
296
|
+
case "transak":
|
297
297
|
return "transak";
|
298
298
|
default: // default to coinbase when undefined or any other value
|
299
299
|
return "coinbase";
|
@@ -2,7 +2,7 @@ import type { Address } from "abitype";
|
|
2
2
|
import type { Chain } from "../../chains/types.js";
|
3
3
|
import type { ThirdwebClient } from "../../client/client.js";
|
4
4
|
import { isAddress } from "../../utils/address.js";
|
5
|
-
import {
|
5
|
+
import { getToken } from "./get-token.js";
|
6
6
|
import type { SupportedFiatCurrency } from "./type.js";
|
7
7
|
|
8
8
|
/**
|
@@ -73,11 +73,11 @@ export async function convertCryptoToFiat(
|
|
73
73
|
"Invalid fromTokenAddress. Expected a valid EVM contract address",
|
74
74
|
);
|
75
75
|
}
|
76
|
-
const
|
77
|
-
if (
|
76
|
+
const token = await getToken(client, fromTokenAddress, chain.id);
|
77
|
+
if (token.priceUsd === 0) {
|
78
78
|
throw new Error(
|
79
79
|
`Error: Failed to fetch price for token ${fromTokenAddress} on chainId: ${chain.id}`,
|
80
80
|
);
|
81
81
|
}
|
82
|
-
return { result:
|
82
|
+
return { result: token.priceUsd * fromAmount };
|
83
83
|
}
|
@@ -2,7 +2,7 @@ import type { Address } from "abitype";
|
|
2
2
|
import type { Chain } from "../../chains/types.js";
|
3
3
|
import type { ThirdwebClient } from "../../client/client.js";
|
4
4
|
import { isAddress } from "../../utils/address.js";
|
5
|
-
import {
|
5
|
+
import { getToken } from "./get-token.js";
|
6
6
|
import type { SupportedFiatCurrency } from "./type.js";
|
7
7
|
|
8
8
|
/**
|
@@ -72,11 +72,11 @@ export async function convertFiatToCrypto(
|
|
72
72
|
if (!isAddress(to)) {
|
73
73
|
throw new Error("Invalid `to`. Expected a valid EVM contract address");
|
74
74
|
}
|
75
|
-
const
|
76
|
-
if (!
|
75
|
+
const token = await getToken(client, to, chain.id);
|
76
|
+
if (!token || token.priceUsd === 0) {
|
77
77
|
throw new Error(
|
78
78
|
`Error: Failed to fetch price for token ${to} on chainId: ${chain.id}`,
|
79
79
|
);
|
80
80
|
}
|
81
|
-
return { result: fromAmount /
|
81
|
+
return { result: fromAmount / token.priceUsd };
|
82
82
|
}
|
@@ -1,12 +1,13 @@
|
|
1
|
-
import { tokens } from "../../bridge/Token.js";
|
1
|
+
import { add, tokens } from "../../bridge/Token.js";
|
2
|
+
import type { Token } from "../../bridge/types/Token.js";
|
2
3
|
import type { ThirdwebClient } from "../../client/client.js";
|
3
4
|
import { withCache } from "../../utils/promise/withCache.js";
|
4
5
|
|
5
|
-
export async function
|
6
|
+
export async function getToken(
|
6
7
|
client: ThirdwebClient,
|
7
8
|
tokenAddress: string,
|
8
9
|
chainId: number,
|
9
|
-
) {
|
10
|
+
): Promise<Token> {
|
10
11
|
return withCache(
|
11
12
|
async () => {
|
12
13
|
const result = await tokens({
|
@@ -14,7 +15,19 @@ export async function getTokenPrice(
|
|
14
15
|
tokenAddress,
|
15
16
|
chainId,
|
16
17
|
});
|
17
|
-
|
18
|
+
const token = result[0];
|
19
|
+
if (!token) {
|
20
|
+
// Attempt to add the token
|
21
|
+
const tokenResult = await add({
|
22
|
+
client,
|
23
|
+
chainId,
|
24
|
+
tokenAddress,
|
25
|
+
}).catch(() => {
|
26
|
+
throw new Error("Token not supported");
|
27
|
+
});
|
28
|
+
return tokenResult;
|
29
|
+
}
|
30
|
+
return token;
|
18
31
|
},
|
19
32
|
{
|
20
33
|
cacheKey: `get-token-price-${tokenAddress}-${chainId}`,
|
@@ -0,0 +1,134 @@
|
|
1
|
+
# Web UI Components Catalog
|
2
|
+
|
3
|
+
This document catalogs the UI components found within `packages/thirdweb/src/react/web/ui`.
|
4
|
+
|
5
|
+
## Core Components (`packages/thirdweb/src/react/web/ui/components`)
|
6
|
+
|
7
|
+
| Component | Occurrences |
|
8
|
+
| ------------------- | ----------- |
|
9
|
+
| Container | 100+ |
|
10
|
+
| Text | 93 |
|
11
|
+
| Spacer | 85 |
|
12
|
+
| Button | 58 |
|
13
|
+
| Skeleton | 40 |
|
14
|
+
| ModalHeader | 40 |
|
15
|
+
| Spinner | 31 |
|
16
|
+
| Img | 31 |
|
17
|
+
| Line | 28 |
|
18
|
+
| ChainIcon | 19 |
|
19
|
+
| TokenIcon | 16 |
|
20
|
+
| Input | 11 |
|
21
|
+
| SwitchNetworkButton | 10 |
|
22
|
+
| WalletImage | 11 |
|
23
|
+
| ToolTip | 6 |
|
24
|
+
| Drawer | 5 |
|
25
|
+
| QRCode | 5 |
|
26
|
+
| CopyIcon | 4 |
|
27
|
+
| ChainActiveDot | 3 |
|
28
|
+
| Label | 3 |
|
29
|
+
| ModalTitle | 3 |
|
30
|
+
| TextDivider | 3 |
|
31
|
+
| DynamicHeight | 3 |
|
32
|
+
| StepBar | 2 |
|
33
|
+
| IconContainer | 2 |
|
34
|
+
| OTPInput | 2 |
|
35
|
+
| ChainName | 1 |
|
36
|
+
| BackButton | 1 |
|
37
|
+
| IconButton | 1 |
|
38
|
+
| ButtonLink | 1 |
|
39
|
+
| Overlay | 1 |
|
40
|
+
| Tabs | 1 |
|
41
|
+
| FadeIn | 0 |
|
42
|
+
| InputContainer | 0 |
|
43
|
+
|
44
|
+
## Prebuilt Components (`packages/thirdweb/src/react/web/ui/prebuilt`)
|
45
|
+
|
46
|
+
### NFT
|
47
|
+
|
48
|
+
| Component | Occurrences (internal) |
|
49
|
+
| -------------- | ---------------------- |
|
50
|
+
| NFTName | 0 |
|
51
|
+
| NFTMedia | 0 |
|
52
|
+
| NFTDescription | 0 |
|
53
|
+
| NFTProvider | 0 |
|
54
|
+
|
55
|
+
### Account
|
56
|
+
|
57
|
+
| Component | Occurrences (internal) |
|
58
|
+
| -------------- | ---------------------- |
|
59
|
+
| AccountBalance | 6 |
|
60
|
+
| AccountAvatar | 2 |
|
61
|
+
| AccountBlobbie | 4 |
|
62
|
+
| AccountName | 2 |
|
63
|
+
| AccountAddress | 4 |
|
64
|
+
|
65
|
+
### Chain
|
66
|
+
|
67
|
+
| Component | Occurrences (internal) |
|
68
|
+
| ------------- | ---------------------- |
|
69
|
+
| ChainName | 5 |
|
70
|
+
| ChainIcon | 7 |
|
71
|
+
| ChainProvider | 2 |
|
72
|
+
|
73
|
+
### Token
|
74
|
+
|
75
|
+
| Component | Occurrences (internal) |
|
76
|
+
| ------------- | ---------------------- |
|
77
|
+
| TokenName | 0 |
|
78
|
+
| TokenSymbol | 12 |
|
79
|
+
| TokenIcon | 7 |
|
80
|
+
| TokenProvider | 0 |
|
81
|
+
|
82
|
+
### Wallet
|
83
|
+
|
84
|
+
| Component | Occurrences (internal) |
|
85
|
+
| ---------- | ---------------------- |
|
86
|
+
| WalletName | 0 |
|
87
|
+
| WalletIcon | 0 |
|
88
|
+
|
89
|
+
### Thirdweb
|
90
|
+
|
91
|
+
| Component | Occurrences (internal) |
|
92
|
+
| ------------------------- | ---------------------- |
|
93
|
+
| ClaimButton | 0 |
|
94
|
+
| BuyDirectListingButton | 0 |
|
95
|
+
| CreateDirectListingButton | 0 |
|
96
|
+
|
97
|
+
## Re-used Components (`packages/thirdweb/src/react/web/ui`)
|
98
|
+
|
99
|
+
### Non-Core/Non-Prebuilt Components (ConnectWallet folder analysis)
|
100
|
+
|
101
|
+
| Component | Occurrences | Source/Type |
|
102
|
+
| ------------------------------ | ----------- | ---------------------------- |
|
103
|
+
| LoadingScreen | 19 | Wallets shared component |
|
104
|
+
| Suspense | 8 | React built-in |
|
105
|
+
| WalletRow | 8 | Buy/swap utility component |
|
106
|
+
| PoweredByThirdweb | 6 | Custom branding component |
|
107
|
+
| Modal | 5 | Core UI component |
|
108
|
+
| WalletUIStatesProvider | 4 | Wallet state management |
|
109
|
+
| NetworkSelectorContent | 4 | Network selection component |
|
110
|
+
| PayTokenIcon | 3 | Buy screen utility component |
|
111
|
+
| FiatValue | 3 | Buy/swap utility component |
|
112
|
+
| TOS | 3 | Terms of service component |
|
113
|
+
| ErrorState | 3 | Error handling component |
|
114
|
+
| AnimatedButton | 3 | Animation component |
|
115
|
+
| ConnectModalContent | 3 | Modal content layout |
|
116
|
+
| AnyWalletConnectUI | 2 | Wallet connection screen |
|
117
|
+
| SmartConnectUI | 2 | Smart wallet connection UI |
|
118
|
+
| WalletEntryButton | 2 | Wallet selection button |
|
119
|
+
| TokenSelector | 2 | Token selection component |
|
120
|
+
| SignatureScreen | 2 | Wallet signature screen |
|
121
|
+
| WalletSwitcherConnectionScreen | 2 | Wallet switching UI |
|
122
|
+
| ErrorText | 2 | Error display component |
|
123
|
+
| SwapSummary | 2 | Swap transaction summary |
|
124
|
+
| EstimatedTimeAndFees | 2 | Transaction info component |
|
125
|
+
|
126
|
+
### Other Re-used Components
|
127
|
+
|
128
|
+
| Component | Occurrences |
|
129
|
+
| --------- | ----------- |
|
130
|
+
| PayEmbed | 1 |
|
131
|
+
| SiteEmbed | 0 |
|
132
|
+
| SiteLink | 0 |
|
133
|
+
|
134
|
+
**Note:** Occurrences are based on direct import and usage (e.g., `<ComponentName`). This count excludes test files and documentation examples, counting only internal usage within the src/react/web folder. The analysis focuses on commonly used components that are NOT from the core components or prebuilt folders, revealing key reusable components for state management, error handling, animations, and branding.
|
@@ -0,0 +1,13 @@
|
|
1
|
+
/**
|
2
|
+
* WindowAdapter interface for platform-specific window/URL opening functionality.
|
3
|
+
* This allows dependency inversion so core logic doesn't directly depend on platform APIs.
|
4
|
+
*/
|
5
|
+
export interface WindowAdapter {
|
6
|
+
/**
|
7
|
+
* Opens a URL in a new window/tab or appropriate platform mechanism.
|
8
|
+
*
|
9
|
+
* @param url - The URL to open
|
10
|
+
* @returns Promise that resolves when the operation is initiated
|
11
|
+
*/
|
12
|
+
open(url: string, title?: string, options?: string): Promise<void>;
|
13
|
+
}
|
@@ -0,0 +1,98 @@
|
|
1
|
+
import { describe, expect, it } from "vitest";
|
2
|
+
import { ApiError } from "../../../bridge/types/Errors.js";
|
3
|
+
import { isRetryable, mapBridgeError } from "./mapBridgeError.js";
|
4
|
+
|
5
|
+
describe("mapBridgeError", () => {
|
6
|
+
it("should return the same error for INVALID_INPUT", () => {
|
7
|
+
const error = new ApiError({
|
8
|
+
code: "INVALID_INPUT",
|
9
|
+
message: "Invalid input provided",
|
10
|
+
statusCode: 400,
|
11
|
+
correlationId: "test-correlation-id",
|
12
|
+
});
|
13
|
+
|
14
|
+
const result = mapBridgeError(error);
|
15
|
+
|
16
|
+
expect(result).toBe(error);
|
17
|
+
expect(result.code).toBe("INVALID_INPUT");
|
18
|
+
expect(result.message).toBe("Invalid input provided");
|
19
|
+
expect(result.statusCode).toBe(400);
|
20
|
+
expect(result.correlationId).toBe("test-correlation-id");
|
21
|
+
});
|
22
|
+
|
23
|
+
it("should return the same error for INTERNAL_SERVER_ERROR", () => {
|
24
|
+
const error = new ApiError({
|
25
|
+
code: "INTERNAL_SERVER_ERROR",
|
26
|
+
message: "Internal server error occurred",
|
27
|
+
statusCode: 500,
|
28
|
+
correlationId: "internal-error-id",
|
29
|
+
});
|
30
|
+
|
31
|
+
const result = mapBridgeError(error);
|
32
|
+
|
33
|
+
expect(result).toBe(error);
|
34
|
+
expect(result.code).toBe("INTERNAL_SERVER_ERROR");
|
35
|
+
expect(result.message).toBe("Internal server error occurred");
|
36
|
+
expect(result.statusCode).toBe(500);
|
37
|
+
expect(result.correlationId).toBe("internal-error-id");
|
38
|
+
});
|
39
|
+
|
40
|
+
it("should return the same error for ROUTE_NOT_FOUND", () => {
|
41
|
+
const error = new ApiError({
|
42
|
+
code: "ROUTE_NOT_FOUND",
|
43
|
+
message: "No route found for the requested parameters",
|
44
|
+
statusCode: 404,
|
45
|
+
});
|
46
|
+
|
47
|
+
const result = mapBridgeError(error);
|
48
|
+
|
49
|
+
expect(result).toBe(error);
|
50
|
+
expect(result.code).toBe("ROUTE_NOT_FOUND");
|
51
|
+
expect(result.message).toBe("No route found for the requested parameters");
|
52
|
+
expect(result.statusCode).toBe(404);
|
53
|
+
expect(result.correlationId).toBeUndefined();
|
54
|
+
});
|
55
|
+
|
56
|
+
it("should return the same error for AMOUNT_TOO_LOW", () => {
|
57
|
+
const error = new ApiError({
|
58
|
+
code: "AMOUNT_TOO_LOW",
|
59
|
+
message: "Amount is below minimum threshold",
|
60
|
+
statusCode: 400,
|
61
|
+
correlationId: "amount-validation-id",
|
62
|
+
});
|
63
|
+
|
64
|
+
const result = mapBridgeError(error);
|
65
|
+
|
66
|
+
expect(result).toBe(error);
|
67
|
+
expect(result.code).toBe("AMOUNT_TOO_LOW");
|
68
|
+
expect(result.message).toBe("Amount is below minimum threshold");
|
69
|
+
expect(result.statusCode).toBe(400);
|
70
|
+
expect(result.correlationId).toBe("amount-validation-id");
|
71
|
+
});
|
72
|
+
});
|
73
|
+
|
74
|
+
describe("isRetryable", () => {
|
75
|
+
it("should return true for INTERNAL_SERVER_ERROR", () => {
|
76
|
+
expect(isRetryable("INTERNAL_SERVER_ERROR")).toBe(true);
|
77
|
+
});
|
78
|
+
|
79
|
+
it("should return true for UNKNOWN_ERROR", () => {
|
80
|
+
expect(isRetryable("UNKNOWN_ERROR")).toBe(true);
|
81
|
+
});
|
82
|
+
|
83
|
+
it("should return false for INVALID_INPUT", () => {
|
84
|
+
expect(isRetryable("INVALID_INPUT")).toBe(false);
|
85
|
+
});
|
86
|
+
|
87
|
+
it("should return false for ROUTE_NOT_FOUND", () => {
|
88
|
+
expect(isRetryable("ROUTE_NOT_FOUND")).toBe(false);
|
89
|
+
});
|
90
|
+
|
91
|
+
it("should return false for AMOUNT_TOO_LOW", () => {
|
92
|
+
expect(isRetryable("AMOUNT_TOO_LOW")).toBe(false);
|
93
|
+
});
|
94
|
+
|
95
|
+
it("should return false for AMOUNT_TOO_HIGH", () => {
|
96
|
+
expect(isRetryable("AMOUNT_TOO_HIGH")).toBe(false);
|
97
|
+
});
|
98
|
+
});
|
@@ -0,0 +1,25 @@
|
|
1
|
+
import type { ApiError } from "../../../bridge/types/Errors.js";
|
2
|
+
|
3
|
+
/**
|
4
|
+
* Maps raw ApiError instances from the Bridge SDK into UI-friendly domain errors.
|
5
|
+
* Currently returns the same error; will evolve to provide better user-facing messages.
|
6
|
+
*
|
7
|
+
* @param e - The raw ApiError from the Bridge SDK
|
8
|
+
* @returns The mapped ApiError (currently unchanged)
|
9
|
+
*/
|
10
|
+
export function mapBridgeError(e: ApiError): ApiError {
|
11
|
+
// For now, return the same error
|
12
|
+
// TODO: This will evolve to provide better user-facing error messages
|
13
|
+
return e;
|
14
|
+
}
|
15
|
+
|
16
|
+
/**
|
17
|
+
* Determines if an error code represents a retryable error condition.
|
18
|
+
*
|
19
|
+
* @param code - The error code from ApiError
|
20
|
+
* @returns true if the error is retryable, false otherwise
|
21
|
+
*/
|
22
|
+
export function isRetryable(code: ApiError["code"]): boolean {
|
23
|
+
// Treat INTERNAL_SERVER_ERROR & UNKNOWN_ERROR as retryable
|
24
|
+
return code === "INTERNAL_SERVER_ERROR" || code === "UNKNOWN_ERROR";
|
25
|
+
}
|
@@ -25,40 +25,42 @@ import type {
|
|
25
25
|
} from "../../utils/defaultTokens.js";
|
26
26
|
import type { SiweAuthOptions } from "../auth/useSiweAuth.js";
|
27
27
|
|
28
|
-
export type PaymentInfo =
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
28
|
+
export type PaymentInfo = Prettify<
|
29
|
+
{
|
30
|
+
/**
|
31
|
+
* The chain to receive the payment on.
|
32
|
+
*/
|
33
|
+
chain: Chain;
|
34
|
+
/**
|
35
|
+
* The address of the seller wallet to receive the payment on.
|
36
|
+
*/
|
37
|
+
sellerAddress: string;
|
38
|
+
/**
|
39
|
+
* Optional ERC20 token to receive the payment on.
|
40
|
+
* If not provided, the native token will be used.
|
41
|
+
*/
|
42
|
+
token?: Partial<TokenInfo> & { address: string };
|
43
|
+
/**
|
44
|
+
* For direct transfers, specify who will pay the transfer fee. Can be "sender" or "receiver".
|
45
|
+
*/
|
46
|
+
feePayer?: "sender" | "receiver";
|
47
|
+
} & (
|
48
|
+
| {
|
49
|
+
/**
|
50
|
+
* The amount of tokens to receive in ETH or tokens.
|
51
|
+
* ex: 0.1 ETH or 100 USDC
|
52
|
+
*/
|
53
|
+
amount: string;
|
54
|
+
}
|
55
|
+
| {
|
56
|
+
/**
|
57
|
+
* The amount of tokens to receive in wei.
|
58
|
+
* ex: 1000000000000000000 wei
|
59
|
+
*/
|
60
|
+
amountWei: bigint;
|
61
|
+
}
|
62
|
+
)
|
63
|
+
>;
|
62
64
|
|
63
65
|
export type PayUIOptions = Prettify<
|
64
66
|
{
|
@@ -78,7 +80,7 @@ export type PayUIOptions = Prettify<
|
|
78
80
|
testMode?: boolean;
|
79
81
|
prefillSource?: {
|
80
82
|
chain: Chain;
|
81
|
-
token?: TokenInfo;
|
83
|
+
token?: Partial<TokenInfo> & { address: string };
|
82
84
|
allowEdits?: {
|
83
85
|
token: boolean;
|
84
86
|
chain: boolean;
|
@@ -115,7 +117,8 @@ export type PayUIOptions = Prettify<
|
|
115
117
|
* Callback to be called when the user successfully completes the purchase.
|
116
118
|
*/
|
117
119
|
onPurchaseSuccess?: (
|
118
|
-
|
120
|
+
// TODO: remove this type from the callback entirely or adapt it from the new format
|
121
|
+
info?:
|
119
122
|
| {
|
120
123
|
type: "crypto";
|
121
124
|
status: BuyWithCryptoStatus;
|
@@ -135,6 +138,7 @@ export type PayUIOptions = Prettify<
|
|
135
138
|
*/
|
136
139
|
metadata?: {
|
137
140
|
name?: string;
|
141
|
+
description?: string;
|
138
142
|
image?: string;
|
139
143
|
};
|
140
144
|
|
@@ -160,13 +164,14 @@ export type FundWalletOptions = {
|
|
160
164
|
*/
|
161
165
|
prefillBuy?: {
|
162
166
|
chain: Chain;
|
163
|
-
token?: TokenInfo;
|
167
|
+
token?: Partial<TokenInfo> & { address: string };
|
164
168
|
amount?: string;
|
165
169
|
allowEdits?: {
|
166
170
|
amount: boolean;
|
167
171
|
token: boolean;
|
168
172
|
chain: boolean;
|
169
173
|
};
|
174
|
+
presetOptions?: [number, number, number];
|
170
175
|
};
|
171
176
|
};
|
172
177
|
|
@@ -137,7 +137,7 @@ export function useChainExplorers(chain?: Chain) {
|
|
137
137
|
|
138
138
|
function getQueryOptions(chain?: Chain) {
|
139
139
|
return {
|
140
|
-
queryKey: ["chain", chain],
|
140
|
+
queryKey: ["chain", chain?.id],
|
141
141
|
enabled: !!chain,
|
142
142
|
staleTime: 1000 * 60 * 60, // 1 hour
|
143
143
|
} as const;
|
@@ -0,0 +1,100 @@
|
|
1
|
+
import { type UseQueryOptions, useQueries } from "@tanstack/react-query";
|
2
|
+
import { prepare as prepareOnramp } from "../../../../bridge/Onramp.js";
|
3
|
+
import type { ThirdwebClient } from "../../../../client/client.js";
|
4
|
+
import { getToken } from "../../../../pay/convert/get-token.js";
|
5
|
+
import type { Address } from "../../../../utils/address.js";
|
6
|
+
import { toUnits } from "../../../../utils/units.js";
|
7
|
+
|
8
|
+
/**
|
9
|
+
* @internal
|
10
|
+
*/
|
11
|
+
type UseBuyWithFiatQuotesForProvidersParams = {
|
12
|
+
/**
|
13
|
+
* A client is the entry point to the thirdweb SDK.
|
14
|
+
*/
|
15
|
+
client: ThirdwebClient;
|
16
|
+
/**
|
17
|
+
* The destination chain ID.
|
18
|
+
*/
|
19
|
+
chainId: number;
|
20
|
+
/**
|
21
|
+
* The destination token address.
|
22
|
+
*/
|
23
|
+
tokenAddress: Address;
|
24
|
+
/**
|
25
|
+
* The address that will receive the tokens.
|
26
|
+
*/
|
27
|
+
receiver: Address;
|
28
|
+
/**
|
29
|
+
* The desired token amount in wei.
|
30
|
+
*/
|
31
|
+
amount: string;
|
32
|
+
/**
|
33
|
+
* The fiat currency (e.g., "USD"). Defaults to "USD".
|
34
|
+
*/
|
35
|
+
currency?: string;
|
36
|
+
};
|
37
|
+
|
38
|
+
/**
|
39
|
+
* @internal
|
40
|
+
*/
|
41
|
+
type OnrampQuoteQueryOptions = Omit<
|
42
|
+
UseQueryOptions<Awaited<ReturnType<typeof prepareOnramp>>>,
|
43
|
+
"queryFn" | "queryKey" | "enabled"
|
44
|
+
>;
|
45
|
+
|
46
|
+
/**
|
47
|
+
* @internal
|
48
|
+
*/
|
49
|
+
type UseBuyWithFiatQuotesForProvidersResult = {
|
50
|
+
data: Awaited<ReturnType<typeof prepareOnramp>> | undefined;
|
51
|
+
isLoading: boolean;
|
52
|
+
error: Error | null;
|
53
|
+
isError: boolean;
|
54
|
+
isSuccess: boolean;
|
55
|
+
}[];
|
56
|
+
|
57
|
+
/**
|
58
|
+
* @internal
|
59
|
+
* Hook to get prepared onramp quotes from Coinbase, Stripe, and Transak providers.
|
60
|
+
*/
|
61
|
+
export function useBuyWithFiatQuotesForProviders(
|
62
|
+
params?: UseBuyWithFiatQuotesForProvidersParams,
|
63
|
+
queryOptions?: OnrampQuoteQueryOptions,
|
64
|
+
): UseBuyWithFiatQuotesForProvidersResult {
|
65
|
+
const providers = ["coinbase", "stripe", "transak"] as const;
|
66
|
+
|
67
|
+
const queries = useQueries({
|
68
|
+
queries: providers.map((provider) => ({
|
69
|
+
...queryOptions,
|
70
|
+
queryKey: ["onramp-prepare", provider, params],
|
71
|
+
queryFn: async () => {
|
72
|
+
if (!params) {
|
73
|
+
throw new Error("No params provided");
|
74
|
+
}
|
75
|
+
|
76
|
+
const token = await getToken(
|
77
|
+
params.client,
|
78
|
+
params.tokenAddress,
|
79
|
+
params.chainId,
|
80
|
+
);
|
81
|
+
|
82
|
+
const amountWei = toUnits(params.amount, token.decimals);
|
83
|
+
|
84
|
+
return prepareOnramp({
|
85
|
+
client: params.client,
|
86
|
+
onramp: provider,
|
87
|
+
chainId: params.chainId,
|
88
|
+
tokenAddress: params.tokenAddress,
|
89
|
+
receiver: params.receiver,
|
90
|
+
amount: amountWei,
|
91
|
+
currency: params.currency || "USD",
|
92
|
+
});
|
93
|
+
},
|
94
|
+
enabled: !!params,
|
95
|
+
retry: false,
|
96
|
+
})),
|
97
|
+
});
|
98
|
+
|
99
|
+
return queries;
|
100
|
+
}
|