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
@@ -0,0 +1,219 @@
|
|
1
|
+
"use client";
|
2
|
+
import { useEffect } from "react";
|
3
|
+
import type { Token } from "../../../../bridge/types/Token.js";
|
4
|
+
import type { ThirdwebClient } from "../../../../client/client.js";
|
5
|
+
import { NATIVE_TOKEN_ADDRESS } from "../../../../constants/addresses.js";
|
6
|
+
import { toUnits } from "../../../../utils/units.js";
|
7
|
+
import {
|
8
|
+
type BridgePrepareRequest,
|
9
|
+
type BridgePrepareResult,
|
10
|
+
type UseBridgePrepareParams,
|
11
|
+
useBridgePrepare,
|
12
|
+
} from "../../../core/hooks/useBridgePrepare.js";
|
13
|
+
import type { PaymentMethod } from "../../../core/machines/paymentMachine.js";
|
14
|
+
import { Spacer } from "../components/Spacer.js";
|
15
|
+
import { Spinner } from "../components/Spinner.js";
|
16
|
+
import { Container } from "../components/basic.js";
|
17
|
+
import { Text } from "../components/text.js";
|
18
|
+
|
19
|
+
interface QuoteLoaderProps {
|
20
|
+
/**
|
21
|
+
* The destination token to bridge to
|
22
|
+
*/
|
23
|
+
destinationToken: Token;
|
24
|
+
|
25
|
+
/**
|
26
|
+
* The payment method to use
|
27
|
+
*/
|
28
|
+
paymentMethod: PaymentMethod;
|
29
|
+
|
30
|
+
/**
|
31
|
+
* The amount to bridge (as string)
|
32
|
+
*/
|
33
|
+
amount: string;
|
34
|
+
|
35
|
+
/**
|
36
|
+
* The sender address
|
37
|
+
*/
|
38
|
+
sender?: string;
|
39
|
+
|
40
|
+
/**
|
41
|
+
* The receiver address (defaults to sender for fund_wallet mode)
|
42
|
+
*/
|
43
|
+
receiver: string;
|
44
|
+
|
45
|
+
/**
|
46
|
+
* ThirdwebClient for API calls
|
47
|
+
*/
|
48
|
+
client: ThirdwebClient;
|
49
|
+
|
50
|
+
/**
|
51
|
+
* Called when a quote is successfully received
|
52
|
+
*/
|
53
|
+
onQuoteReceived: (
|
54
|
+
preparedQuote: BridgePrepareResult,
|
55
|
+
request: BridgePrepareRequest,
|
56
|
+
) => void;
|
57
|
+
|
58
|
+
/**
|
59
|
+
* Called when an error occurs
|
60
|
+
*/
|
61
|
+
onError: (error: Error) => void;
|
62
|
+
|
63
|
+
/**
|
64
|
+
* Called when user wants to go back
|
65
|
+
*/
|
66
|
+
onBack?: () => void;
|
67
|
+
|
68
|
+
/**
|
69
|
+
* Optional purchase data for the payment
|
70
|
+
*/
|
71
|
+
purchaseData?: object;
|
72
|
+
|
73
|
+
/**
|
74
|
+
* Optional payment link ID for the payment
|
75
|
+
*/
|
76
|
+
paymentLinkId?: string;
|
77
|
+
|
78
|
+
/**
|
79
|
+
* Fee payer for direct transfers (defaults to sender)
|
80
|
+
*/
|
81
|
+
feePayer?: "sender" | "receiver";
|
82
|
+
}
|
83
|
+
|
84
|
+
export function QuoteLoader({
|
85
|
+
destinationToken,
|
86
|
+
paymentMethod,
|
87
|
+
amount,
|
88
|
+
sender,
|
89
|
+
receiver,
|
90
|
+
client,
|
91
|
+
onQuoteReceived,
|
92
|
+
onError,
|
93
|
+
purchaseData,
|
94
|
+
paymentLinkId,
|
95
|
+
feePayer,
|
96
|
+
}: QuoteLoaderProps) {
|
97
|
+
// For now, we'll use a simple buy operation
|
98
|
+
// This will be expanded to handle different bridge types based on the payment method
|
99
|
+
const request: BridgePrepareRequest = getBridgeParams({
|
100
|
+
paymentMethod,
|
101
|
+
amount,
|
102
|
+
destinationToken,
|
103
|
+
receiver,
|
104
|
+
sender,
|
105
|
+
client,
|
106
|
+
purchaseData,
|
107
|
+
paymentLinkId,
|
108
|
+
feePayer,
|
109
|
+
});
|
110
|
+
const prepareQuery = useBridgePrepare(request);
|
111
|
+
|
112
|
+
// Handle successful quote
|
113
|
+
useEffect(() => {
|
114
|
+
if (prepareQuery.data) {
|
115
|
+
onQuoteReceived(prepareQuery.data, request);
|
116
|
+
}
|
117
|
+
}, [prepareQuery.data, onQuoteReceived, request]);
|
118
|
+
|
119
|
+
// Handle errors
|
120
|
+
useEffect(() => {
|
121
|
+
if (prepareQuery.error) {
|
122
|
+
onError(prepareQuery.error as Error);
|
123
|
+
}
|
124
|
+
}, [prepareQuery.error, onError]);
|
125
|
+
|
126
|
+
return (
|
127
|
+
<Container
|
128
|
+
flex="column"
|
129
|
+
center="both"
|
130
|
+
p="lg"
|
131
|
+
fullHeight
|
132
|
+
style={{ minHeight: "350px" }}
|
133
|
+
>
|
134
|
+
<Spinner size="xl" color="secondaryText" />
|
135
|
+
<Spacer y="md" />
|
136
|
+
<Text size="lg" color="primaryText" center style={{ fontWeight: 600 }}>
|
137
|
+
Finding the best route...
|
138
|
+
</Text>
|
139
|
+
<Spacer y="sm" />
|
140
|
+
<Text size="sm" color="secondaryText" center>
|
141
|
+
We're searching for the most efficient path for this payment.
|
142
|
+
</Text>
|
143
|
+
</Container>
|
144
|
+
);
|
145
|
+
}
|
146
|
+
|
147
|
+
function getBridgeParams(args: {
|
148
|
+
paymentMethod: PaymentMethod;
|
149
|
+
amount: string;
|
150
|
+
destinationToken: Token;
|
151
|
+
receiver: string;
|
152
|
+
client: ThirdwebClient;
|
153
|
+
sender?: string;
|
154
|
+
feePayer?: "sender" | "receiver";
|
155
|
+
purchaseData?: object;
|
156
|
+
paymentLinkId?: string;
|
157
|
+
}): UseBridgePrepareParams {
|
158
|
+
const { paymentMethod, amount, destinationToken, receiver, client, sender } =
|
159
|
+
args;
|
160
|
+
|
161
|
+
switch (paymentMethod.type) {
|
162
|
+
case "fiat":
|
163
|
+
return {
|
164
|
+
type: "onramp",
|
165
|
+
client,
|
166
|
+
amount: toUnits(amount, destinationToken.decimals),
|
167
|
+
receiver,
|
168
|
+
sender,
|
169
|
+
chainId: destinationToken.chainId,
|
170
|
+
tokenAddress: destinationToken.address,
|
171
|
+
onramp: paymentMethod.onramp || "coinbase",
|
172
|
+
purchaseData: args.purchaseData,
|
173
|
+
currency: paymentMethod.currency,
|
174
|
+
onrampTokenAddress: NATIVE_TOKEN_ADDRESS, // always onramp to native token
|
175
|
+
paymentLinkId: args.paymentLinkId,
|
176
|
+
enabled: !!(destinationToken && amount && client),
|
177
|
+
};
|
178
|
+
case "wallet":
|
179
|
+
// if the origin token is the same as the destination token, use transfer type
|
180
|
+
if (
|
181
|
+
paymentMethod.originToken.chainId === destinationToken.chainId &&
|
182
|
+
paymentMethod.originToken.address.toLowerCase() ===
|
183
|
+
destinationToken.address.toLowerCase()
|
184
|
+
) {
|
185
|
+
return {
|
186
|
+
type: "transfer",
|
187
|
+
client,
|
188
|
+
chainId: destinationToken.chainId,
|
189
|
+
tokenAddress: destinationToken.address,
|
190
|
+
feePayer: args.feePayer || "sender",
|
191
|
+
amount: toUnits(amount, destinationToken.decimals),
|
192
|
+
sender:
|
193
|
+
sender ||
|
194
|
+
paymentMethod.payerWallet.getAccount()?.address ||
|
195
|
+
receiver,
|
196
|
+
receiver,
|
197
|
+
purchaseData: args.purchaseData,
|
198
|
+
paymentLinkId: args.paymentLinkId,
|
199
|
+
enabled: !!(destinationToken && amount && client),
|
200
|
+
};
|
201
|
+
}
|
202
|
+
|
203
|
+
return {
|
204
|
+
type: "buy",
|
205
|
+
client,
|
206
|
+
originChainId: paymentMethod.originToken.chainId,
|
207
|
+
originTokenAddress: paymentMethod.originToken.address,
|
208
|
+
destinationChainId: destinationToken.chainId,
|
209
|
+
destinationTokenAddress: destinationToken.address,
|
210
|
+
amount: toUnits(amount, destinationToken.decimals),
|
211
|
+
sender:
|
212
|
+
sender || paymentMethod.payerWallet.getAccount()?.address || receiver,
|
213
|
+
receiver,
|
214
|
+
purchaseData: args.purchaseData,
|
215
|
+
paymentLinkId: args.paymentLinkId,
|
216
|
+
enabled: !!(destinationToken && amount && client),
|
217
|
+
};
|
218
|
+
}
|
219
|
+
}
|
@@ -0,0 +1,417 @@
|
|
1
|
+
"use client";
|
2
|
+
import { CheckIcon, ClockIcon, Cross1Icon } from "@radix-ui/react-icons";
|
3
|
+
import type { RouteStep } from "../../../../bridge/types/Route.js";
|
4
|
+
import type { Chain } from "../../../../chains/types.js";
|
5
|
+
import { defineChain } from "../../../../chains/utils.js";
|
6
|
+
import type { ThirdwebClient } from "../../../../client/client.js";
|
7
|
+
import type { Wallet } from "../../../../wallets/interfaces/wallet.js";
|
8
|
+
import type { WindowAdapter } from "../../../core/adapters/WindowAdapter.js";
|
9
|
+
import { useCustomTheme } from "../../../core/design-system/CustomThemeProvider.js";
|
10
|
+
import {
|
11
|
+
iconSize,
|
12
|
+
radius,
|
13
|
+
spacing,
|
14
|
+
} from "../../../core/design-system/index.js";
|
15
|
+
import type { BridgePrepareRequest } from "../../../core/hooks/useBridgePrepare.js";
|
16
|
+
import {
|
17
|
+
type CompletedStatusResult,
|
18
|
+
useStepExecutor,
|
19
|
+
} from "../../../core/hooks/useStepExecutor.js";
|
20
|
+
import { ChainName } from "../components/ChainName.js";
|
21
|
+
import { Spacer } from "../components/Spacer.js";
|
22
|
+
import { Spinner } from "../components/Spinner.js";
|
23
|
+
import { Container, ModalHeader } from "../components/basic.js";
|
24
|
+
import { Button } from "../components/buttons.js";
|
25
|
+
import { Text } from "../components/text.js";
|
26
|
+
|
27
|
+
interface StepRunnerProps {
|
28
|
+
request: BridgePrepareRequest;
|
29
|
+
|
30
|
+
/**
|
31
|
+
* Wallet instance for executing transactions
|
32
|
+
*/
|
33
|
+
wallet: Wallet;
|
34
|
+
|
35
|
+
/**
|
36
|
+
* Thirdweb client for API calls
|
37
|
+
*/
|
38
|
+
client: ThirdwebClient;
|
39
|
+
|
40
|
+
/**
|
41
|
+
* Window adapter for opening URLs (web/RN)
|
42
|
+
*/
|
43
|
+
windowAdapter: WindowAdapter;
|
44
|
+
|
45
|
+
/**
|
46
|
+
* Whether to automatically start the transaction process
|
47
|
+
*/
|
48
|
+
autoStart?: boolean;
|
49
|
+
|
50
|
+
/**
|
51
|
+
* Called when all steps are completed - receives array of completed status results
|
52
|
+
*/
|
53
|
+
onComplete: (completedStatuses: CompletedStatusResult[]) => void;
|
54
|
+
|
55
|
+
/**
|
56
|
+
* Called when user cancels the flow
|
57
|
+
*/
|
58
|
+
onCancel?: () => void;
|
59
|
+
|
60
|
+
/**
|
61
|
+
* Called when user clicks the back button
|
62
|
+
*/
|
63
|
+
onBack?: () => void;
|
64
|
+
}
|
65
|
+
|
66
|
+
export function StepRunner({
|
67
|
+
request,
|
68
|
+
wallet,
|
69
|
+
client,
|
70
|
+
windowAdapter,
|
71
|
+
onComplete,
|
72
|
+
onCancel,
|
73
|
+
onBack,
|
74
|
+
autoStart,
|
75
|
+
}: StepRunnerProps) {
|
76
|
+
const theme = useCustomTheme();
|
77
|
+
|
78
|
+
// Use the real step executor hook
|
79
|
+
const {
|
80
|
+
currentStep,
|
81
|
+
progress,
|
82
|
+
executionState,
|
83
|
+
onrampStatus,
|
84
|
+
steps,
|
85
|
+
error,
|
86
|
+
start,
|
87
|
+
cancel,
|
88
|
+
retry,
|
89
|
+
} = useStepExecutor({
|
90
|
+
request,
|
91
|
+
wallet,
|
92
|
+
client,
|
93
|
+
windowAdapter,
|
94
|
+
autoStart,
|
95
|
+
onComplete: (completedStatuses: CompletedStatusResult[]) => {
|
96
|
+
onComplete(completedStatuses);
|
97
|
+
},
|
98
|
+
});
|
99
|
+
|
100
|
+
const handleCancel = () => {
|
101
|
+
cancel();
|
102
|
+
if (onCancel) {
|
103
|
+
onCancel();
|
104
|
+
}
|
105
|
+
};
|
106
|
+
|
107
|
+
const handleRetry = () => {
|
108
|
+
retry();
|
109
|
+
};
|
110
|
+
|
111
|
+
const getStepStatus = (
|
112
|
+
stepIndex: number,
|
113
|
+
): "pending" | "executing" | "completed" | "failed" => {
|
114
|
+
if (!currentStep || !steps) {
|
115
|
+
// Not started yet
|
116
|
+
return stepIndex === 0 ? (error ? "failed" : "pending") : "pending";
|
117
|
+
}
|
118
|
+
|
119
|
+
const currentStepIndex = steps.findIndex((step) => step === currentStep);
|
120
|
+
|
121
|
+
if (stepIndex < currentStepIndex) return "completed";
|
122
|
+
if (stepIndex === currentStepIndex && executionState === "executing")
|
123
|
+
return "executing";
|
124
|
+
if (stepIndex === currentStepIndex && error) return "failed";
|
125
|
+
if (
|
126
|
+
stepIndex === currentStepIndex &&
|
127
|
+
executionState === "idle" &&
|
128
|
+
progress === 100
|
129
|
+
)
|
130
|
+
return "completed";
|
131
|
+
|
132
|
+
return "pending";
|
133
|
+
};
|
134
|
+
|
135
|
+
const getStatusIcon = (
|
136
|
+
status: "pending" | "executing" | "completed" | "failed",
|
137
|
+
) => {
|
138
|
+
switch (status) {
|
139
|
+
case "completed":
|
140
|
+
return (
|
141
|
+
<CheckIcon
|
142
|
+
width={iconSize.sm}
|
143
|
+
height={iconSize.sm}
|
144
|
+
color={theme.colors.accentButtonText}
|
145
|
+
/>
|
146
|
+
);
|
147
|
+
case "executing":
|
148
|
+
return <Spinner size="sm" color={"accentButtonText"} />;
|
149
|
+
case "failed":
|
150
|
+
return (
|
151
|
+
<Cross1Icon width={iconSize.sm} height={iconSize.sm} color="white" />
|
152
|
+
);
|
153
|
+
default:
|
154
|
+
return (
|
155
|
+
<ClockIcon
|
156
|
+
width={iconSize.sm}
|
157
|
+
height={iconSize.sm}
|
158
|
+
color={theme.colors.primaryText}
|
159
|
+
/>
|
160
|
+
);
|
161
|
+
}
|
162
|
+
};
|
163
|
+
|
164
|
+
const getStepBackgroundColor = (
|
165
|
+
status: "pending" | "executing" | "completed" | "failed",
|
166
|
+
) => {
|
167
|
+
switch (status) {
|
168
|
+
case "completed":
|
169
|
+
return theme.colors.tertiaryBg;
|
170
|
+
case "executing":
|
171
|
+
return theme.colors.tertiaryBg;
|
172
|
+
case "failed":
|
173
|
+
return theme.colors.tertiaryBg;
|
174
|
+
default:
|
175
|
+
return theme.colors.tertiaryBg;
|
176
|
+
}
|
177
|
+
};
|
178
|
+
|
179
|
+
const getIconBackgroundColor = (
|
180
|
+
status: "pending" | "executing" | "completed" | "failed",
|
181
|
+
) => {
|
182
|
+
switch (status) {
|
183
|
+
case "completed":
|
184
|
+
return theme.colors.success;
|
185
|
+
case "executing":
|
186
|
+
return theme.colors.accentButtonBg;
|
187
|
+
case "failed":
|
188
|
+
return theme.colors.danger;
|
189
|
+
default:
|
190
|
+
return theme.colors.borderColor;
|
191
|
+
}
|
192
|
+
};
|
193
|
+
|
194
|
+
const getStepDescription = (step: RouteStep) => {
|
195
|
+
const { originToken, destinationToken } = step;
|
196
|
+
|
197
|
+
// If tokens are the same, it's likely a bridge operation
|
198
|
+
if (originToken.chainId !== destinationToken.chainId) {
|
199
|
+
return (
|
200
|
+
<Container flex="row" gap="3xs">
|
201
|
+
<Text size="sm" color="primaryText">
|
202
|
+
Bridge {originToken.symbol} to{" "}
|
203
|
+
</Text>
|
204
|
+
<ChainName
|
205
|
+
chain={getDestinationChain(request)}
|
206
|
+
size="sm"
|
207
|
+
client={client}
|
208
|
+
short
|
209
|
+
color="primaryText"
|
210
|
+
/>
|
211
|
+
</Container>
|
212
|
+
);
|
213
|
+
}
|
214
|
+
|
215
|
+
// If different tokens on same chain, it's a swap
|
216
|
+
if (originToken.symbol !== destinationToken.symbol) {
|
217
|
+
return (
|
218
|
+
<Text size="sm" color="primaryText">
|
219
|
+
Swap {originToken.symbol} to {destinationToken.symbol}
|
220
|
+
</Text>
|
221
|
+
);
|
222
|
+
}
|
223
|
+
|
224
|
+
// Fallback to step number
|
225
|
+
return (
|
226
|
+
<Text size="sm" color="primaryText">
|
227
|
+
Process transaction
|
228
|
+
</Text>
|
229
|
+
);
|
230
|
+
};
|
231
|
+
|
232
|
+
const getStepStatusText = (
|
233
|
+
status: "pending" | "executing" | "completed" | "failed",
|
234
|
+
) => {
|
235
|
+
switch (status) {
|
236
|
+
case "executing":
|
237
|
+
return "Processing...";
|
238
|
+
case "completed":
|
239
|
+
return "Completed";
|
240
|
+
case "pending":
|
241
|
+
return "Waiting...";
|
242
|
+
case "failed":
|
243
|
+
return "Failed";
|
244
|
+
default:
|
245
|
+
return "Unknown";
|
246
|
+
}
|
247
|
+
};
|
248
|
+
|
249
|
+
return (
|
250
|
+
<Container flex="column" fullHeight p="lg">
|
251
|
+
<ModalHeader title="Processing Payment" onBack={onBack} />
|
252
|
+
|
253
|
+
<Spacer y="xl" />
|
254
|
+
|
255
|
+
<Container flex="column">
|
256
|
+
{/* Progress Bar */}
|
257
|
+
<Container flex="column" gap="sm">
|
258
|
+
<Container flex="row" center="y">
|
259
|
+
<Text size="sm" color="secondaryText" style={{ flex: 1 }}>
|
260
|
+
Progress
|
261
|
+
</Text>
|
262
|
+
<Text size="sm" color="primaryText">
|
263
|
+
{progress}%
|
264
|
+
</Text>
|
265
|
+
</Container>
|
266
|
+
|
267
|
+
<Container
|
268
|
+
style={{
|
269
|
+
width: "100%",
|
270
|
+
height: "8px",
|
271
|
+
backgroundColor: theme.colors.tertiaryBg,
|
272
|
+
border: `1px solid ${theme.colors.borderColor}`,
|
273
|
+
borderRadius: "4px",
|
274
|
+
overflow: "hidden",
|
275
|
+
}}
|
276
|
+
>
|
277
|
+
<Container
|
278
|
+
style={{
|
279
|
+
width: `${progress}%`,
|
280
|
+
height: "100%",
|
281
|
+
backgroundColor: error
|
282
|
+
? theme.colors.danger
|
283
|
+
: theme.colors.accentButtonBg,
|
284
|
+
transition: "width 0.3s ease",
|
285
|
+
}}
|
286
|
+
>
|
287
|
+
<Text />
|
288
|
+
</Container>
|
289
|
+
</Container>
|
290
|
+
</Container>
|
291
|
+
|
292
|
+
<Spacer y="lg" />
|
293
|
+
|
294
|
+
{/* Steps List */}
|
295
|
+
<Container flex="column" gap="sm">
|
296
|
+
{request.type === "onramp" && onrampStatus ? (
|
297
|
+
<Container
|
298
|
+
flex="row"
|
299
|
+
gap="md"
|
300
|
+
style={{
|
301
|
+
alignItems: "center",
|
302
|
+
padding: `${spacing.sm} ${spacing.md}`,
|
303
|
+
borderRadius: radius.md,
|
304
|
+
backgroundColor: getStepBackgroundColor(onrampStatus),
|
305
|
+
border: `1px solid ${theme.colors.borderColor}`,
|
306
|
+
}}
|
307
|
+
>
|
308
|
+
<Container
|
309
|
+
center="both"
|
310
|
+
flex="row"
|
311
|
+
style={{
|
312
|
+
width: `${iconSize.lg}px`,
|
313
|
+
height: `${iconSize.lg}px`,
|
314
|
+
borderRadius: "50%",
|
315
|
+
backgroundColor: getIconBackgroundColor(onrampStatus),
|
316
|
+
color: theme.colors.primaryButtonText,
|
317
|
+
flexShrink: 0,
|
318
|
+
}}
|
319
|
+
>
|
320
|
+
{getStatusIcon(onrampStatus)}
|
321
|
+
</Container>
|
322
|
+
|
323
|
+
<Container flex="column" gap="3xs" style={{ flex: 1 }}>
|
324
|
+
<Text size="sm" color="primaryText">
|
325
|
+
TEST
|
326
|
+
</Text>
|
327
|
+
<Text size="xs" color="secondaryText">
|
328
|
+
{getStepStatusText(onrampStatus)}
|
329
|
+
</Text>
|
330
|
+
</Container>
|
331
|
+
</Container>
|
332
|
+
) : null}
|
333
|
+
{steps?.map((step, index) => {
|
334
|
+
const status = getStepStatus(index);
|
335
|
+
|
336
|
+
return (
|
337
|
+
<Container
|
338
|
+
key={`${step.originToken.chainId}-${step.destinationToken.chainId}-${index}`}
|
339
|
+
flex="row"
|
340
|
+
gap="md"
|
341
|
+
style={{
|
342
|
+
alignItems: "center",
|
343
|
+
padding: `${spacing.sm} ${spacing.md}`,
|
344
|
+
borderRadius: radius.md,
|
345
|
+
backgroundColor: getStepBackgroundColor(status),
|
346
|
+
border: `1px solid ${theme.colors.borderColor}`,
|
347
|
+
}}
|
348
|
+
>
|
349
|
+
<Container
|
350
|
+
center="both"
|
351
|
+
flex="row"
|
352
|
+
style={{
|
353
|
+
width: `${iconSize.lg}px`,
|
354
|
+
height: `${iconSize.lg}px`,
|
355
|
+
borderRadius: "50%",
|
356
|
+
backgroundColor: getIconBackgroundColor(status),
|
357
|
+
color: theme.colors.primaryButtonText,
|
358
|
+
flexShrink: 0,
|
359
|
+
}}
|
360
|
+
>
|
361
|
+
{getStatusIcon(status)}
|
362
|
+
</Container>
|
363
|
+
|
364
|
+
<Container flex="column" gap="3xs" style={{ flex: 1 }}>
|
365
|
+
{getStepDescription(step)}
|
366
|
+
<Text size="xs" color="secondaryText">
|
367
|
+
{getStepStatusText(status)}
|
368
|
+
</Text>
|
369
|
+
</Container>
|
370
|
+
</Container>
|
371
|
+
);
|
372
|
+
})}
|
373
|
+
</Container>
|
374
|
+
|
375
|
+
<Spacer y="md" />
|
376
|
+
<Text size="xs" color="secondaryText" center>
|
377
|
+
Keep this window open until all
|
378
|
+
<br /> transactions are complete.
|
379
|
+
</Text>
|
380
|
+
|
381
|
+
<Spacer y="lg" />
|
382
|
+
|
383
|
+
{/* Action Buttons */}
|
384
|
+
{error ? (
|
385
|
+
<Container flex="row" gap="md">
|
386
|
+
<Button variant="primary" fullWidth onClick={handleRetry}>
|
387
|
+
Retry
|
388
|
+
</Button>
|
389
|
+
</Container>
|
390
|
+
) : executionState === "idle" && progress === 0 ? (
|
391
|
+
<Button variant="accent" fullWidth onClick={start}>
|
392
|
+
Start Transaction
|
393
|
+
</Button>
|
394
|
+
) : executionState === "executing" ||
|
395
|
+
executionState === "auto-starting" ? (
|
396
|
+
<Button variant="secondary" fullWidth onClick={handleCancel}>
|
397
|
+
Cancel Transaction
|
398
|
+
</Button>
|
399
|
+
) : null}
|
400
|
+
</Container>
|
401
|
+
</Container>
|
402
|
+
);
|
403
|
+
}
|
404
|
+
|
405
|
+
function getDestinationChain(request: BridgePrepareRequest): Chain {
|
406
|
+
switch (request.type) {
|
407
|
+
case "onramp":
|
408
|
+
return defineChain(request.chainId);
|
409
|
+
case "buy":
|
410
|
+
case "sell":
|
411
|
+
return defineChain(request.destinationChainId);
|
412
|
+
case "transfer":
|
413
|
+
return defineChain(request.chainId);
|
414
|
+
default:
|
415
|
+
throw new Error("Invalid quote type");
|
416
|
+
}
|
417
|
+
}
|