thirdweb 5.39.0 → 5.40.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/exports/react.js +7 -2
- package/dist/cjs/exports/react.js.map +1 -1
- package/dist/cjs/react/core/design-system/index.js +2 -0
- package/dist/cjs/react/core/design-system/index.js.map +1 -1
- package/dist/cjs/react/core/hooks/transaction/useSendTransaction.js +13 -94
- package/dist/cjs/react/core/hooks/transaction/useSendTransaction.js.map +1 -1
- package/dist/cjs/react/core/hooks/wallets/useAutoConnect.js +16 -3
- package/dist/cjs/react/core/hooks/wallets/useAutoConnect.js.map +1 -1
- package/dist/cjs/react/core/utils/defaultTokens.js +32 -25
- package/dist/cjs/react/core/utils/defaultTokens.js.map +1 -1
- package/dist/cjs/react/core/utils/wallet.js +91 -13
- package/dist/cjs/react/core/utils/wallet.js.map +1 -1
- package/dist/cjs/react/web/hooks/transaction/useSendTransaction.js +18 -127
- package/dist/cjs/react/web/hooks/transaction/useSendTransaction.js.map +1 -1
- package/dist/cjs/react/web/ui/ConnectWallet/Details.js +3 -1
- package/dist/cjs/react/web/ui/ConnectWallet/Details.js.map +1 -1
- package/dist/cjs/react/web/ui/ConnectWallet/Modal/ConnectEmbed.js +7 -3
- package/dist/cjs/react/web/ui/ConnectWallet/Modal/ConnectEmbed.js.map +1 -1
- package/dist/cjs/react/web/ui/ConnectWallet/TransactionsScreen.js +1 -1
- package/dist/cjs/react/web/ui/ConnectWallet/TransactionsScreen.js.map +1 -1
- package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/BuyScreen.js +184 -118
- 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 +104 -0
- package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/DirectPaymentModeScreen.js.map +1 -0
- package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/TransactionModeScreen.js +69 -0
- package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/TransactionModeScreen.js.map +1 -0
- package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/WalletSelectorButton.js +23 -5
- package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/WalletSelectorButton.js.map +1 -1
- package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/fiat/FiatFlow.js +4 -4
- package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/fiat/FiatFlow.js.map +1 -1
- package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/fiat/FiatStatusScreen.js +2 -2
- package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/fiat/FiatStatusScreen.js.map +1 -1
- package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/fiat/PostOnRampSwap.js +2 -2
- package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/fiat/PostOnRampSwap.js.map +1 -1
- package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/fiat/PostOnRampSwapFlow.js +1 -1
- package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/fiat/PostOnRampSwapFlow.js.map +1 -1
- package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/main/useBuyTxStates.js +132 -45
- package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/main/useBuyTxStates.js.map +1 -1
- package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/main/useEnabledPaymentMethods.js +2 -5
- package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/main/useEnabledPaymentMethods.js.map +1 -1
- package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/main/useUISelectionStates.js +13 -8
- package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/main/useUISelectionStates.js.map +1 -1
- package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/pay-transactions/BuyTxHistory.js +1 -1
- package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/pay-transactions/BuyTxHistory.js.map +1 -1
- package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/pay-transactions/FiatDetailsScreen.js +1 -1
- package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/pay-transactions/FiatDetailsScreen.js.map +1 -1
- package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/pay-transactions/SwapDetailsScreen.js +1 -1
- package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/pay-transactions/SwapDetailsScreen.js.map +1 -1
- package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/pay-transactions/TokenInfoRow.js +1 -1
- package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/pay-transactions/TokenInfoRow.js.map +1 -1
- package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/pay-transactions/TxDetailsScreen.js +1 -1
- package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/pay-transactions/TxDetailsScreen.js.map +1 -1
- package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/swap/ConfirmationScreen.js +9 -5
- package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/swap/ConfirmationScreen.js.map +1 -1
- package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/swap/Fees.js +1 -1
- package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/swap/Fees.js.map +1 -1
- package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/swap/PayWithCrypto.js +8 -3
- package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/swap/PayWithCrypto.js.map +1 -1
- package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/swap/SwapFlow.js +1 -1
- package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/swap/SwapFlow.js.map +1 -1
- package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/swap/SwapStatusScreen.js +1 -1
- package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/swap/SwapStatusScreen.js.map +1 -1
- package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/swap/TransferFlow.js +84 -0
- package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/swap/TransferFlow.js.map +1 -0
- package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/swap/WalletSwitcherDrawerContent.js +13 -7
- package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/swap/WalletSwitcherDrawerContent.js.map +1 -1
- package/dist/cjs/react/web/ui/ConnectWallet/screens/nativeToken.js +3 -1
- package/dist/cjs/react/web/ui/ConnectWallet/screens/nativeToken.js.map +1 -1
- package/dist/cjs/react/web/ui/PayEmbed.js +16 -9
- package/dist/cjs/react/web/ui/PayEmbed.js.map +1 -1
- package/dist/cjs/react/web/ui/TransactionButton/ExecutingScreen.js +53 -0
- package/dist/cjs/react/web/ui/TransactionButton/ExecutingScreen.js.map +1 -0
- package/dist/cjs/react/web/ui/TransactionButton/TransactionModal.js +33 -0
- package/dist/cjs/react/web/ui/TransactionButton/TransactionModal.js.map +1 -0
- package/dist/cjs/react/web/wallets/shared/ConnectWalletSocialOptions.js +16 -5
- package/dist/cjs/react/web/wallets/shared/ConnectWalletSocialOptions.js.map +1 -1
- package/dist/cjs/react/web/wallets/shared/SocialLogin.js +18 -2
- package/dist/cjs/react/web/wallets/shared/SocialLogin.js.map +1 -1
- package/dist/cjs/react/web/wallets/shared/{openOauthSignInWindow.js → oauthSignIn.js} +2 -3
- package/dist/cjs/react/web/wallets/shared/oauthSignIn.js.map +1 -0
- package/dist/cjs/version.js +1 -1
- package/dist/cjs/wallets/in-app/core/wallet/index.js +15 -0
- package/dist/cjs/wallets/in-app/core/wallet/index.js.map +1 -1
- package/dist/cjs/wallets/in-app/web/in-app.js +10 -0
- package/dist/cjs/wallets/in-app/web/in-app.js.map +1 -1
- package/dist/cjs/wallets/in-app/web/lib/auth/index.js +2 -0
- package/dist/cjs/wallets/in-app/web/lib/auth/index.js.map +1 -1
- package/dist/cjs/wallets/in-app/web/lib/auth/oauth.js +9 -1
- package/dist/cjs/wallets/in-app/web/lib/auth/oauth.js.map +1 -1
- package/dist/cjs/wallets/in-app/web/lib/get-url-token.js +26 -0
- package/dist/cjs/wallets/in-app/web/lib/get-url-token.js.map +1 -0
- package/dist/cjs/wallets/in-app/web/lib/web-connector.js +13 -3
- package/dist/cjs/wallets/in-app/web/lib/web-connector.js.map +1 -1
- package/dist/esm/exports/react.js +3 -1
- package/dist/esm/exports/react.js.map +1 -1
- package/dist/esm/react/core/design-system/index.js +2 -0
- package/dist/esm/react/core/design-system/index.js.map +1 -1
- package/dist/esm/react/core/hooks/transaction/useSendTransaction.js +13 -93
- package/dist/esm/react/core/hooks/transaction/useSendTransaction.js.map +1 -1
- package/dist/esm/react/core/hooks/wallets/useAutoConnect.js +16 -3
- package/dist/esm/react/core/hooks/wallets/useAutoConnect.js.map +1 -1
- package/dist/esm/react/core/utils/defaultTokens.js +31 -25
- package/dist/esm/react/core/utils/defaultTokens.js.map +1 -1
- package/dist/esm/react/core/utils/wallet.js +88 -13
- package/dist/esm/react/core/utils/wallet.js.map +1 -1
- package/dist/esm/react/web/hooks/transaction/useSendTransaction.js +20 -129
- package/dist/esm/react/web/hooks/transaction/useSendTransaction.js.map +1 -1
- package/dist/esm/react/web/ui/ConnectWallet/Details.js +3 -1
- package/dist/esm/react/web/ui/ConnectWallet/Details.js.map +1 -1
- package/dist/esm/react/web/ui/ConnectWallet/Modal/ConnectEmbed.js +7 -3
- package/dist/esm/react/web/ui/ConnectWallet/Modal/ConnectEmbed.js.map +1 -1
- package/dist/esm/react/web/ui/ConnectWallet/TransactionsScreen.js +1 -1
- package/dist/esm/react/web/ui/ConnectWallet/TransactionsScreen.js.map +1 -1
- package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/BuyScreen.js +188 -122
- 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 +101 -0
- package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/DirectPaymentModeScreen.js.map +1 -0
- package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/TransactionModeScreen.js +66 -0
- package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/TransactionModeScreen.js.map +1 -0
- package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/WalletSelectorButton.js +22 -5
- package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/WalletSelectorButton.js.map +1 -1
- package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/fiat/FiatFlow.js +4 -4
- package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/fiat/FiatFlow.js.map +1 -1
- package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/fiat/FiatStatusScreen.js +2 -2
- package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/fiat/FiatStatusScreen.js.map +1 -1
- package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/fiat/PostOnRampSwap.js +2 -2
- package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/fiat/PostOnRampSwap.js.map +1 -1
- package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/fiat/PostOnRampSwapFlow.js +1 -1
- package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/fiat/PostOnRampSwapFlow.js.map +1 -1
- package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/main/useBuyTxStates.js +130 -44
- package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/main/useBuyTxStates.js.map +1 -1
- package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/main/useEnabledPaymentMethods.js +2 -5
- package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/main/useEnabledPaymentMethods.js.map +1 -1
- package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/main/useUISelectionStates.js +13 -8
- package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/main/useUISelectionStates.js.map +1 -1
- package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/pay-transactions/BuyTxHistory.js +1 -1
- package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/pay-transactions/BuyTxHistory.js.map +1 -1
- package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/pay-transactions/FiatDetailsScreen.js +1 -1
- package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/pay-transactions/FiatDetailsScreen.js.map +1 -1
- package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/pay-transactions/SwapDetailsScreen.js +1 -1
- package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/pay-transactions/SwapDetailsScreen.js.map +1 -1
- package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/pay-transactions/TokenInfoRow.js +1 -1
- package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/pay-transactions/TokenInfoRow.js.map +1 -1
- package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/pay-transactions/TxDetailsScreen.js +1 -1
- package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/pay-transactions/TxDetailsScreen.js.map +1 -1
- package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/swap/ConfirmationScreen.js +7 -4
- package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/swap/ConfirmationScreen.js.map +1 -1
- package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/swap/Fees.js +1 -1
- package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/swap/Fees.js.map +1 -1
- package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/swap/PayWithCrypto.js +9 -4
- package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/swap/PayWithCrypto.js.map +1 -1
- package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/swap/SwapFlow.js +1 -1
- package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/swap/SwapFlow.js.map +1 -1
- package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/swap/SwapStatusScreen.js +1 -1
- package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/swap/SwapStatusScreen.js.map +1 -1
- package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/swap/TransferFlow.js +81 -0
- package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/swap/TransferFlow.js.map +1 -0
- package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/swap/WalletSwitcherDrawerContent.js +14 -8
- package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/swap/WalletSwitcherDrawerContent.js.map +1 -1
- package/dist/esm/react/web/ui/ConnectWallet/screens/nativeToken.js +3 -1
- package/dist/esm/react/web/ui/ConnectWallet/screens/nativeToken.js.map +1 -1
- package/dist/esm/react/web/ui/PayEmbed.js +16 -9
- package/dist/esm/react/web/ui/PayEmbed.js.map +1 -1
- package/dist/esm/react/web/ui/TransactionButton/ExecutingScreen.js +50 -0
- package/dist/esm/react/web/ui/TransactionButton/ExecutingScreen.js.map +1 -0
- package/dist/esm/react/web/ui/TransactionButton/TransactionModal.js +29 -0
- package/dist/esm/react/web/ui/TransactionButton/TransactionModal.js.map +1 -0
- package/dist/esm/react/web/wallets/shared/ConnectWalletSocialOptions.js +15 -4
- package/dist/esm/react/web/wallets/shared/ConnectWalletSocialOptions.js.map +1 -1
- package/dist/esm/react/web/wallets/shared/SocialLogin.js +17 -1
- package/dist/esm/react/web/wallets/shared/SocialLogin.js.map +1 -1
- package/dist/esm/react/web/wallets/shared/{openOauthSignInWindow.js → oauthSignIn.js} +2 -3
- package/dist/esm/react/web/wallets/shared/oauthSignIn.js.map +1 -0
- package/dist/esm/version.js +1 -1
- package/dist/esm/wallets/in-app/core/wallet/index.js +15 -0
- package/dist/esm/wallets/in-app/core/wallet/index.js.map +1 -1
- package/dist/esm/wallets/in-app/web/in-app.js +10 -0
- package/dist/esm/wallets/in-app/web/in-app.js.map +1 -1
- package/dist/esm/wallets/in-app/web/lib/auth/index.js +2 -0
- package/dist/esm/wallets/in-app/web/lib/auth/index.js.map +1 -1
- package/dist/esm/wallets/in-app/web/lib/auth/oauth.js +7 -0
- package/dist/esm/wallets/in-app/web/lib/auth/oauth.js.map +1 -1
- package/dist/esm/wallets/in-app/web/lib/get-url-token.js +23 -0
- package/dist/esm/wallets/in-app/web/lib/get-url-token.js.map +1 -0
- package/dist/esm/wallets/in-app/web/lib/web-connector.js +14 -4
- package/dist/esm/wallets/in-app/web/lib/web-connector.js.map +1 -1
- package/dist/types/exports/react.d.ts +3 -2
- package/dist/types/exports/react.d.ts.map +1 -1
- package/dist/types/exports/utils.d.ts +1 -0
- package/dist/types/exports/utils.d.ts.map +1 -1
- package/dist/types/react/core/design-system/index.d.ts +2 -0
- package/dist/types/react/core/design-system/index.d.ts.map +1 -1
- package/dist/types/react/core/hooks/connection/ConnectButtonProps.d.ts +80 -34
- package/dist/types/react/core/hooks/connection/ConnectButtonProps.d.ts.map +1 -1
- package/dist/types/react/core/hooks/transaction/useSendTransaction.d.ts +3 -15
- package/dist/types/react/core/hooks/transaction/useSendTransaction.d.ts.map +1 -1
- package/dist/types/react/core/hooks/wallets/useAutoConnect.d.ts.map +1 -1
- package/dist/types/react/core/utils/defaultTokens.d.ts +222 -0
- package/dist/types/react/core/utils/defaultTokens.d.ts.map +1 -1
- package/dist/types/react/core/utils/wallet.d.ts +43 -1
- package/dist/types/react/core/utils/wallet.d.ts.map +1 -1
- package/dist/types/react/web/hooks/transaction/useSendTransaction.d.ts +2 -4
- package/dist/types/react/web/hooks/transaction/useSendTransaction.d.ts.map +1 -1
- package/dist/types/react/web/ui/ConnectWallet/Details.d.ts +3 -1
- package/dist/types/react/web/ui/ConnectWallet/Details.d.ts.map +1 -1
- package/dist/types/react/web/ui/ConnectWallet/Modal/ConnectEmbed.d.ts.map +1 -1
- package/dist/types/react/web/ui/ConnectWallet/screens/Buy/BuyScreen.d.ts +0 -3
- 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 +18 -0
- package/dist/types/react/web/ui/ConnectWallet/screens/Buy/DirectPaymentModeScreen.d.ts.map +1 -0
- package/dist/types/react/web/ui/ConnectWallet/screens/Buy/TransactionModeScreen.d.ts +18 -0
- package/dist/types/react/web/ui/ConnectWallet/screens/Buy/TransactionModeScreen.d.ts.map +1 -0
- package/dist/types/react/web/ui/ConnectWallet/screens/Buy/WalletSelectorButton.d.ts +5 -0
- package/dist/types/react/web/ui/ConnectWallet/screens/Buy/WalletSelectorButton.d.ts.map +1 -1
- package/dist/types/react/web/ui/ConnectWallet/screens/Buy/fiat/FiatFlow.d.ts +1 -2
- package/dist/types/react/web/ui/ConnectWallet/screens/Buy/fiat/FiatFlow.d.ts.map +1 -1
- package/dist/types/react/web/ui/ConnectWallet/screens/Buy/fiat/FiatStatusScreen.d.ts +1 -2
- package/dist/types/react/web/ui/ConnectWallet/screens/Buy/fiat/FiatStatusScreen.d.ts.map +1 -1
- package/dist/types/react/web/ui/ConnectWallet/screens/Buy/fiat/PostOnRampSwap.d.ts +1 -2
- package/dist/types/react/web/ui/ConnectWallet/screens/Buy/fiat/PostOnRampSwap.d.ts.map +1 -1
- package/dist/types/react/web/ui/ConnectWallet/screens/Buy/fiat/PostOnRampSwapFlow.d.ts +1 -2
- package/dist/types/react/web/ui/ConnectWallet/screens/Buy/fiat/PostOnRampSwapFlow.d.ts.map +1 -1
- package/dist/types/react/web/ui/ConnectWallet/screens/Buy/main/types.d.ts +14 -8
- package/dist/types/react/web/ui/ConnectWallet/screens/Buy/main/types.d.ts.map +1 -1
- package/dist/types/react/web/ui/ConnectWallet/screens/Buy/main/useBuyTxStates.d.ts +19 -9
- package/dist/types/react/web/ui/ConnectWallet/screens/Buy/main/useBuyTxStates.d.ts.map +1 -1
- package/dist/types/react/web/ui/ConnectWallet/screens/Buy/main/useEnabledPaymentMethods.d.ts +6 -5
- package/dist/types/react/web/ui/ConnectWallet/screens/Buy/main/useEnabledPaymentMethods.d.ts.map +1 -1
- package/dist/types/react/web/ui/ConnectWallet/screens/Buy/main/useUISelectionStates.d.ts +0 -2
- 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/pay-transactions/BuyTxHistory.d.ts +1 -1
- package/dist/types/react/web/ui/ConnectWallet/screens/Buy/pay-transactions/BuyTxHistory.d.ts.map +1 -1
- package/dist/types/react/web/ui/ConnectWallet/screens/Buy/pay-transactions/FiatDetailsScreen.d.ts +1 -1
- package/dist/types/react/web/ui/ConnectWallet/screens/Buy/pay-transactions/FiatDetailsScreen.d.ts.map +1 -1
- package/dist/types/react/web/ui/ConnectWallet/screens/Buy/pay-transactions/TxDetailsScreen.d.ts +1 -1
- package/dist/types/react/web/ui/ConnectWallet/screens/Buy/pay-transactions/TxDetailsScreen.d.ts.map +1 -1
- package/dist/types/react/web/ui/ConnectWallet/screens/Buy/swap/ConfirmationScreen.d.ts +4 -0
- package/dist/types/react/web/ui/ConnectWallet/screens/Buy/swap/ConfirmationScreen.d.ts.map +1 -1
- package/dist/types/react/web/ui/ConnectWallet/screens/Buy/swap/Fees.d.ts.map +1 -1
- package/dist/types/react/web/ui/ConnectWallet/screens/Buy/swap/PayWithCrypto.d.ts +1 -0
- package/dist/types/react/web/ui/ConnectWallet/screens/Buy/swap/PayWithCrypto.d.ts.map +1 -1
- package/dist/types/react/web/ui/ConnectWallet/screens/Buy/swap/SwapFlow.d.ts +1 -2
- package/dist/types/react/web/ui/ConnectWallet/screens/Buy/swap/SwapFlow.d.ts.map +1 -1
- package/dist/types/react/web/ui/ConnectWallet/screens/Buy/swap/SwapStatusScreen.d.ts +1 -2
- package/dist/types/react/web/ui/ConnectWallet/screens/Buy/swap/SwapStatusScreen.d.ts.map +1 -1
- package/dist/types/react/web/ui/ConnectWallet/screens/Buy/swap/TransferFlow.d.ts +19 -0
- package/dist/types/react/web/ui/ConnectWallet/screens/Buy/swap/TransferFlow.d.ts.map +1 -0
- package/dist/types/react/web/ui/ConnectWallet/screens/Buy/swap/WalletSwitcherDrawerContent.d.ts.map +1 -1
- package/dist/types/react/web/ui/ConnectWallet/screens/nativeToken.d.ts.map +1 -1
- package/dist/types/react/web/ui/PayEmbed.d.ts +0 -6
- package/dist/types/react/web/ui/PayEmbed.d.ts.map +1 -1
- package/dist/types/react/web/ui/TransactionButton/ExecutingScreen.d.ts +9 -0
- package/dist/types/react/web/ui/TransactionButton/ExecutingScreen.d.ts.map +1 -0
- package/dist/types/react/web/ui/TransactionButton/TransactionModal.d.ts +24 -0
- package/dist/types/react/web/ui/TransactionButton/TransactionModal.d.ts.map +1 -0
- package/dist/types/react/web/wallets/shared/ConnectWalletSocialOptions.d.ts.map +1 -1
- package/dist/types/react/web/wallets/shared/SocialLogin.d.ts.map +1 -1
- package/dist/types/react/web/wallets/shared/{openOauthSignInWindow.d.ts → oauthSignIn.d.ts} +1 -2
- package/dist/types/react/web/wallets/shared/oauthSignIn.d.ts.map +1 -0
- package/dist/types/version.d.ts +1 -1
- package/dist/types/wallets/ecosystem/types.d.ts +3 -0
- package/dist/types/wallets/ecosystem/types.d.ts.map +1 -1
- package/dist/types/wallets/in-app/core/interfaces/connector.d.ts +4 -1
- package/dist/types/wallets/in-app/core/interfaces/connector.d.ts.map +1 -1
- package/dist/types/wallets/in-app/core/wallet/index.d.ts.map +1 -1
- package/dist/types/wallets/in-app/core/wallet/types.d.ts +4 -1
- package/dist/types/wallets/in-app/core/wallet/types.d.ts.map +1 -1
- package/dist/types/wallets/in-app/web/in-app.d.ts +10 -0
- package/dist/types/wallets/in-app/web/in-app.d.ts.map +1 -1
- package/dist/types/wallets/in-app/web/lib/auth/index.d.ts +11 -2
- package/dist/types/wallets/in-app/web/lib/auth/index.d.ts.map +1 -1
- package/dist/types/wallets/in-app/web/lib/auth/oauth.d.ts +5 -0
- package/dist/types/wallets/in-app/web/lib/auth/oauth.d.ts.map +1 -1
- package/dist/types/wallets/in-app/web/lib/get-url-token.d.ts +12 -0
- package/dist/types/wallets/in-app/web/lib/get-url-token.d.ts.map +1 -0
- package/dist/types/wallets/in-app/web/lib/web-connector.d.ts +4 -1
- package/dist/types/wallets/in-app/web/lib/web-connector.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/exports/react.ts +14 -2
- package/src/exports/utils.ts +2 -0
- package/src/react/core/design-system/index.ts +2 -0
- package/src/react/core/hooks/connection/ConnectButtonProps.ts +103 -51
- package/src/react/core/hooks/transaction/useSendTransaction.ts +17 -127
- package/src/react/core/hooks/wallets/useAutoConnect.ts +17 -3
- package/src/react/core/utils/defaultTokens.ts +38 -26
- package/src/react/core/utils/wallet.ts +102 -18
- package/src/react/web/hooks/transaction/useSendTransaction.tsx +34 -278
- package/src/react/web/ui/ConnectWallet/Details.tsx +6 -4
- package/src/react/web/ui/ConnectWallet/Modal/ConnectEmbed.tsx +9 -3
- package/src/react/web/ui/ConnectWallet/TransactionsScreen.tsx +1 -1
- package/src/react/web/ui/ConnectWallet/screens/Buy/BuyScreen.tsx +347 -383
- package/src/react/web/ui/ConnectWallet/screens/Buy/DirectPaymentModeScreen.tsx +266 -0
- package/src/react/web/ui/ConnectWallet/screens/Buy/TransactionModeScreen.tsx +253 -0
- package/src/react/web/ui/ConnectWallet/screens/Buy/WalletSelectorButton.tsx +52 -21
- package/src/react/web/ui/ConnectWallet/screens/Buy/fiat/FiatFlow.tsx +3 -6
- package/src/react/web/ui/ConnectWallet/screens/Buy/fiat/FiatStatusScreen.tsx +5 -6
- package/src/react/web/ui/ConnectWallet/screens/Buy/fiat/PostOnRampSwap.tsx +2 -4
- package/src/react/web/ui/ConnectWallet/screens/Buy/fiat/PostOnRampSwapFlow.tsx +2 -4
- package/src/react/web/ui/ConnectWallet/screens/Buy/main/types.ts +16 -12
- package/src/react/web/ui/ConnectWallet/screens/Buy/main/useBuyTxStates.ts +155 -60
- package/src/react/web/ui/ConnectWallet/screens/Buy/main/useEnabledPaymentMethods.ts +8 -3
- package/src/react/web/ui/ConnectWallet/screens/Buy/main/useUISelectionStates.ts +17 -12
- package/src/react/web/ui/ConnectWallet/screens/Buy/pay-transactions/BuyTxHistory.tsx +2 -2
- package/src/react/web/ui/ConnectWallet/screens/Buy/pay-transactions/FiatDetailsScreen.tsx +2 -3
- package/src/react/web/ui/ConnectWallet/screens/Buy/pay-transactions/SwapDetailsScreen.tsx +1 -1
- package/src/react/web/ui/ConnectWallet/screens/Buy/pay-transactions/TokenInfoRow.tsx +1 -1
- package/src/react/web/ui/ConnectWallet/screens/Buy/pay-transactions/TxDetailsScreen.tsx +2 -2
- package/src/react/web/ui/ConnectWallet/screens/Buy/swap/ConfirmationScreen.tsx +27 -19
- package/src/react/web/ui/ConnectWallet/screens/Buy/swap/Fees.tsx +8 -4
- package/src/react/web/ui/ConnectWallet/screens/Buy/swap/PayWithCrypto.tsx +12 -5
- package/src/react/web/ui/ConnectWallet/screens/Buy/swap/SwapFlow.tsx +2 -4
- package/src/react/web/ui/ConnectWallet/screens/Buy/swap/SwapStatusScreen.tsx +3 -4
- package/src/react/web/ui/ConnectWallet/screens/Buy/swap/TransferFlow.tsx +243 -0
- package/src/react/web/ui/ConnectWallet/screens/Buy/swap/WalletSwitcherDrawerContent.tsx +30 -17
- package/src/react/web/ui/ConnectWallet/screens/nativeToken.ts +5 -1
- package/src/react/web/ui/PayEmbed.tsx +31 -32
- package/src/react/web/ui/TransactionButton/ExecutingScreen.tsx +127 -0
- package/src/react/web/ui/TransactionButton/TransactionModal.tsx +83 -0
- package/src/react/web/wallets/shared/ConnectWalletSocialOptions.tsx +18 -4
- package/src/react/web/wallets/shared/SocialLogin.tsx +20 -1
- package/src/react/web/wallets/shared/{openOauthSignInWindow.ts → oauthSignIn.ts} +1 -2
- package/src/version.ts +1 -1
- package/src/wallets/ecosystem/types.ts +3 -0
- package/src/wallets/in-app/core/interfaces/connector.ts +6 -0
- package/src/wallets/in-app/core/wallet/index.ts +22 -0
- package/src/wallets/in-app/core/wallet/types.ts +4 -0
- package/src/wallets/in-app/web/in-app.ts +10 -0
- package/src/wallets/in-app/web/lib/auth/index.ts +14 -3
- package/src/wallets/in-app/web/lib/auth/oauth.ts +12 -0
- package/src/wallets/in-app/web/lib/get-url-token.ts +36 -0
- package/src/wallets/in-app/web/lib/web-connector.ts +18 -4
- package/dist/cjs/react/web/wallets/shared/openOauthSignInWindow.js.map +0 -1
- package/dist/esm/react/web/wallets/shared/openOauthSignInWindow.js.map +0 -1
- package/dist/types/react/web/wallets/shared/openOauthSignInWindow.d.ts.map +0 -1
@@ -1,12 +1,10 @@
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
2
2
|
import { IdCardIcon } from "@radix-ui/react-icons";
|
3
|
-
import { useMemo, useState } from "react";
|
3
|
+
import { useCallback, useMemo, useState } from "react";
|
4
4
|
import { NATIVE_TOKEN_ADDRESS } from "../../../../../../constants/addresses.js";
|
5
5
|
import { isSwapRequiredPostOnramp } from "../../../../../../pay/buyWithFiat/isSwapRequiredPostOnramp.js";
|
6
6
|
import { formatNumber } from "../../../../../../utils/formatNumber.js";
|
7
|
-
import {
|
8
|
-
import { fontSize, iconSize, spacing, } from "../../../../../core/design-system/index.js";
|
9
|
-
import { useChainName } from "../../../../../core/hooks/others/useChainQuery.js";
|
7
|
+
import { iconSize, spacing, } from "../../../../../core/design-system/index.js";
|
10
8
|
import { useWalletBalance } from "../../../../../core/hooks/others/useWalletBalance.js";
|
11
9
|
import { useBuyWithCryptoQuote } from "../../../../../core/hooks/pay/useBuyWithCryptoQuote.js";
|
12
10
|
import { useBuyWithFiatQuote } from "../../../../../core/hooks/pay/useBuyWithFiatQuote.js";
|
@@ -14,11 +12,9 @@ import { useActiveAccount } from "../../../../hooks/wallets/useActiveAccount.js"
|
|
14
12
|
import { LoadingScreen } from "../../../../wallets/shared/LoadingScreen.js";
|
15
13
|
import { ChainName } from "../../../components/ChainName.js";
|
16
14
|
import { Drawer, DrawerOverlay, useDrawer, } from "../../../components/Drawer.js";
|
17
|
-
import { Skeleton } from "../../../components/Skeleton.js";
|
18
15
|
import { Spacer } from "../../../components/Spacer.js";
|
19
16
|
import { Spinner } from "../../../components/Spinner.js";
|
20
17
|
import { SwitchNetworkButton } from "../../../components/SwitchNetwork.js";
|
21
|
-
import { TokenIcon } from "../../../components/TokenIcon.js";
|
22
18
|
import { Container, Line, ModalHeader } from "../../../components/basic.js";
|
23
19
|
import { Button } from "../../../components/buttons.js";
|
24
20
|
import { Text } from "../../../components/text.js";
|
@@ -28,22 +24,23 @@ import { ChainButton, NetworkSelectorContent } from "../../NetworkSelector.js";
|
|
28
24
|
import { CoinsIcon } from "../../icons/CoinsIcon.js";
|
29
25
|
import { TokenSelector } from "../TokenSelector.js";
|
30
26
|
import { WalletSwitcherConnectionScreen } from "../WalletSwitcherConnectionScreen.js";
|
31
|
-
import {
|
27
|
+
import { isNativeToken } from "../nativeToken.js";
|
28
|
+
import { DirectPaymentModeScreen } from "./DirectPaymentModeScreen.js";
|
32
29
|
import { EstimatedTimeAndFees } from "./EstimatedTimeAndFees.js";
|
33
30
|
import { PayTokenIcon } from "./PayTokenIcon.js";
|
34
31
|
import { PayWithCreditCard } from "./PayWIthCreditCard.js";
|
35
|
-
import {
|
32
|
+
import { TransactionModeScreen } from "./TransactionModeScreen.js";
|
36
33
|
import { WalletSelectorButton } from "./WalletSelectorButton.js";
|
37
34
|
import { CurrencySelection } from "./fiat/CurrencySelection.js";
|
38
35
|
import { FiatFlow } from "./fiat/FiatFlow.js";
|
39
|
-
import {
|
40
|
-
import { useEnabledPaymentMethods } from "./main/useEnabledPaymentMethods.js";
|
36
|
+
import { useEnabledPaymentMethods, } from "./main/useEnabledPaymentMethods.js";
|
41
37
|
import { useUISelectionStates } from "./main/useUISelectionStates.js";
|
42
38
|
import { openOnrampPopup } from "./openOnRamppopup.js";
|
43
39
|
import { BuyTokenInput } from "./swap/BuyTokenInput.js";
|
44
40
|
import { FiatFees, SwapFees } from "./swap/Fees.js";
|
45
41
|
import { PayWithCrypto } from "./swap/PayWithCrypto.js";
|
46
42
|
import { SwapFlow } from "./swap/SwapFlow.js";
|
43
|
+
import { TransferFlow } from "./swap/TransferFlow.js";
|
47
44
|
import { WalletSwitcherDrawerContent } from "./swap/WalletSwitcherDrawerContent.js";
|
48
45
|
import { addPendingTx } from "./swap/pendingSwapTx.js";
|
49
46
|
import { useBuySupportedDestinations, useBuySupportedSources, } from "./swap/useSwapSupportedChains.js";
|
@@ -56,23 +53,26 @@ export default function BuyScreen(props) {
|
|
56
53
|
if (!supportedDestinationsQuery.data) {
|
57
54
|
return _jsx(LoadingScreen, {});
|
58
55
|
}
|
59
|
-
return (_jsx(BuyScreenContent, { ...props,
|
56
|
+
return (_jsx(BuyScreenContent, { ...props, supportedDestinations: supportedDestinationsQuery.data }));
|
60
57
|
}
|
61
58
|
/**
|
62
59
|
* @internal
|
63
60
|
*/
|
64
61
|
function BuyScreenContent(props) {
|
65
|
-
const { client, supportedDestinations, connectLocale, payOptions
|
62
|
+
const { client, supportedDestinations, connectLocale, payOptions } = props;
|
66
63
|
const activeAccount = useActiveAccount();
|
67
64
|
const { payer, setPayer } = usePayerSetup();
|
68
65
|
const [screen, setScreen] = useState({
|
69
66
|
id: "main",
|
70
67
|
});
|
71
68
|
const [hasEditedAmount, setHasEditedAmount] = useState(false);
|
69
|
+
const onDone = useCallback(() => {
|
70
|
+
setScreen({ id: "main" });
|
71
|
+
props.onDone();
|
72
|
+
}, [props.onDone]);
|
72
73
|
// UI selection
|
73
74
|
const { tokenAmount, setTokenAmount, toChain, setToChain, deferredTokenAmount, fromChain, setFromChain, toToken, setToToken, fromToken, setFromToken, selectedCurrency, setSelectedCurrency, } = useUISelectionStates({
|
74
75
|
payOptions,
|
75
|
-
buyForTx,
|
76
76
|
supportedDestinations,
|
77
77
|
});
|
78
78
|
// check if the screen is expanded or not
|
@@ -93,6 +93,15 @@ function BuyScreenContent(props) {
|
|
93
93
|
}
|
94
94
|
return createSupportedTokens(supportedSourcesQuery.data, payOptions, props.supportedTokens);
|
95
95
|
}, [props.supportedTokens, supportedSourcesQuery.data, payOptions]);
|
96
|
+
const enabledPaymentMethods = useEnabledPaymentMethods({
|
97
|
+
payOptions: props.payOptions,
|
98
|
+
supportedDestinations: props.supportedDestinations,
|
99
|
+
toChain: toChain,
|
100
|
+
toToken: toToken,
|
101
|
+
});
|
102
|
+
const payDisabled = enabledPaymentMethods.showPaymentSelection === false &&
|
103
|
+
enabledPaymentMethods.buyWithCryptoEnabled === false &&
|
104
|
+
enabledPaymentMethods.buyWithFiatEnabled === false;
|
96
105
|
// screens ----------------------------
|
97
106
|
if (screen.id === "connect-payer-wallet") {
|
98
107
|
return (_jsx(WalletSwitcherConnectionScreen, { accountAbstraction: props.connectOptions?.accountAbstraction, appMetadata: props.connectOptions?.appMetadata, chain: props.connectOptions?.chain, chains: props.connectOptions?.chains, client: props.client, connectLocale: props.connectLocale, isEmbed: props.isEmbed, onBack: () => setScreen(screen.backScreen), onSelect: (w) => {
|
@@ -108,23 +117,30 @@ function BuyScreenContent(props) {
|
|
108
117
|
}, recommendedWallets: props.connectOptions?.recommendedWallets, showAllWallets: !!props.connectOptions?.showAllWallets, walletConnect: props.connectOptions?.walletConnect, wallets: props.connectOptions?.wallets }));
|
109
118
|
}
|
110
119
|
if (screen.id === "swap-flow" && payer) {
|
111
|
-
return (_jsx(SwapFlow, { title: props.title,
|
120
|
+
return (_jsx(SwapFlow, { title: props.title, transactionMode: payOptions.mode === "transaction", isEmbed: props.isEmbed, client: client, onBack: () => {
|
112
121
|
setScreen({
|
113
122
|
id: "buy-with-crypto",
|
114
123
|
});
|
115
|
-
}, buyWithCryptoQuote: screen.quote, payer: payer,
|
124
|
+
}, buyWithCryptoQuote: screen.quote, payer: payer, isFiatFlow: false, onDone: onDone, onTryAgain: () => {
|
116
125
|
setScreen({
|
117
126
|
id: "buy-with-crypto",
|
118
127
|
});
|
119
128
|
} }));
|
120
129
|
}
|
121
130
|
if (screen.id === "fiat-flow" && payer) {
|
122
|
-
return (_jsx(FiatFlow, { title: props.title,
|
131
|
+
return (_jsx(FiatFlow, { title: props.title, transactionMode: payOptions.mode === "transaction", quote: screen.quote, onBack: () => {
|
123
132
|
setScreen({
|
124
133
|
id: "buy-with-fiat",
|
125
134
|
});
|
126
135
|
}, client: client, testMode: props.payOptions.buyWithFiat !== false &&
|
127
|
-
props.payOptions.buyWithFiat?.testMode === true, theme: typeof props.theme === "string" ? props.theme : props.theme.type,
|
136
|
+
props.payOptions.buyWithFiat?.testMode === true, theme: typeof props.theme === "string" ? props.theme : props.theme.type, openedWindow: screen.openedWindow, onDone: onDone, isEmbed: props.isEmbed, payer: payer }));
|
137
|
+
}
|
138
|
+
if (screen.id === "transfer-flow" && payer && activeAccount) {
|
139
|
+
const goBack = () => setScreen({ id: "buy-with-crypto" });
|
140
|
+
// TODO (pay) pass it via screen props
|
141
|
+
const defaultRecipientAddress = props.payOptions?.paymentInfo?.sellerAddress;
|
142
|
+
const receiverAddress = defaultRecipientAddress || activeAccount.address;
|
143
|
+
return (_jsx(TransferFlow, { title: props.title, onBack: goBack, payer: payer, client: props.client, onDone: onDone, chain: toChain, token: toToken, tokenAmount: tokenAmount, receiverAddress: receiverAddress, transactionMode: props.payOptions.mode === "transaction" }));
|
128
144
|
}
|
129
145
|
if (screen.id === "select-currency") {
|
130
146
|
const goBack = () => setScreen(screen.backScreen);
|
@@ -136,8 +152,10 @@ function BuyScreenContent(props) {
|
|
136
152
|
if (screen.id === "select-to-token") {
|
137
153
|
const chains = supportedDestinations.map((x) => x.chain);
|
138
154
|
const goBack = () => setScreen(screen.backScreen);
|
155
|
+
const allowEdits = payOptions?.prefillBuy
|
156
|
+
?.allowEdits;
|
139
157
|
// if token selection is disabled - only show network selector screen
|
140
|
-
if (
|
158
|
+
if (allowEdits?.token === false) {
|
141
159
|
return (_jsx(ChainSelectionScreen, { chains: chains, client: props.client, connectLocale: props.connectLocale, setChain: setToChain, goBack: goBack }));
|
142
160
|
}
|
143
161
|
return (_jsx(TokenSelector, { onBack: goBack, tokenList: ((toChain?.id ? destinationSupportedTokens[toChain.id] : undefined) ||
|
@@ -146,7 +164,7 @@ function BuyScreenContent(props) {
|
|
146
164
|
goBack();
|
147
165
|
}, chain: toChain, chainSelection:
|
148
166
|
// hide chain selection if it's disabled
|
149
|
-
|
167
|
+
allowEdits?.chain !== false
|
150
168
|
? {
|
151
169
|
chains: chains,
|
152
170
|
select: (c) => {
|
@@ -179,25 +197,55 @@ function BuyScreenContent(props) {
|
|
179
197
|
}
|
180
198
|
: undefined, connectLocale: connectLocale, client: client, modalTitle: "Pay with" }));
|
181
199
|
}
|
182
|
-
return (_jsx(Container, { animate: "fadein", children: _jsxs("div", { children: [screen.id === "main" && (_jsx(MainScreen, { title: props.title, payerAccount: payer?.account,
|
200
|
+
return (_jsx(Container, { animate: "fadein", children: _jsxs("div", { children: [screen.id === "main" && (_jsx(MainScreen, { title: props.title, payerAccount: payer?.account, client: client, onSelectBuyToken: () => setScreen({ id: "select-to-token", backScreen: screen }), payOptions: payOptions, setTokenAmount: setTokenAmount, setToChain: setToChain, setToToken: setToToken, setFromChain: setFromChain, setFromToken: setFromToken, toChain: toChain, toToken: toToken, tokenAmount: tokenAmount, connectOptions: props.connectOptions, setScreen: setScreen, supportedDestinations: supportedDestinations, onBack: props.onBack, theme: props.theme, hasEditedAmount: hasEditedAmount, setHasEditedAmount: setHasEditedAmount, enabledPaymentMethods: enabledPaymentMethods })), (screen.id === "select-payment-method" ||
|
201
|
+
screen.id === "select-wallet" ||
|
183
202
|
screen.id === "buy-with-crypto" ||
|
184
203
|
screen.id === "buy-with-fiat") &&
|
185
204
|
payer && (_jsxs(TokenSelectedLayout, { title: props.title, selectedChain: toChain, selectedToken: toToken, tokenAmount: tokenAmount, client: client, onBack: () => {
|
186
|
-
if (
|
187
|
-
screen.id === "
|
205
|
+
if (enabledPaymentMethods.showPaymentSelection &&
|
206
|
+
(screen.id === "select-wallet" ||
|
207
|
+
screen.id === "buy-with-fiat")) {
|
188
208
|
setScreen({ id: "select-payment-method" });
|
189
209
|
}
|
190
|
-
else if (screen.id === "
|
210
|
+
else if (screen.id === "buy-with-crypto") {
|
211
|
+
setScreen({ id: "select-wallet" });
|
212
|
+
}
|
213
|
+
else {
|
191
214
|
setScreen({ id: "main" });
|
192
215
|
}
|
193
|
-
}, children: [screen.id === "select-payment-method" && (_jsx(PaymentMethodSelection, { setScreen: (id) => setScreen({ id }) })), screen.id === "
|
216
|
+
}, children: [screen.id === "select-payment-method" && (_jsx(PaymentMethodSelection, { setScreen: (id) => setScreen({ id }) })), screen.id === "select-wallet" && (_jsx(WalletSwitcherDrawerContent, { client: client, onSelect: (w) => {
|
217
|
+
const chain = w.getChain();
|
218
|
+
const account = w.getAccount();
|
219
|
+
if (chain && account) {
|
220
|
+
setPayer({
|
221
|
+
account,
|
222
|
+
chain,
|
223
|
+
wallet: w,
|
224
|
+
});
|
225
|
+
setScreen({ id: "buy-with-crypto" });
|
226
|
+
}
|
227
|
+
}, showAllWallets: !!props.connectOptions?.showAllWallets, wallets: props.connectOptions?.wallets, onBack: () => {
|
228
|
+
// no-op
|
229
|
+
}, onConnect: () => {
|
230
|
+
setScreen({
|
231
|
+
id: "connect-payer-wallet",
|
232
|
+
backScreen: {
|
233
|
+
id: "select-wallet",
|
234
|
+
},
|
235
|
+
});
|
236
|
+
}, selectedAddress: payer.account.address })), screen.id === "buy-with-crypto" && activeAccount && (_jsx(SwapScreenContent, { setScreen: setScreen, tokenAmount: deferredTokenAmount, toChain: toChain, toToken: toToken, fromChain: fromChain, fromToken: fromToken, showFromTokenSelector: () => {
|
194
237
|
setScreen({
|
195
238
|
id: "select-from-token",
|
196
239
|
backScreen: screen,
|
197
240
|
});
|
198
|
-
}, payer: payer,
|
241
|
+
}, payer: payer, client: client, isEmbed: props.isEmbed, onDone: onDone, payOptions: payOptions, connectLocale: connectLocale, connectOptions: props.connectOptions, setPayer: setPayer,
|
199
242
|
// pass it even though we are passing payer, because payer might be different
|
200
|
-
activeAccount: activeAccount, setTokenAmount: setTokenAmount, setHasEditedAmount: setHasEditedAmount
|
243
|
+
activeAccount: activeAccount, setTokenAmount: setTokenAmount, setHasEditedAmount: setHasEditedAmount, disableTokenSelection: payDisabled === true ||
|
244
|
+
(payOptions.buyWithCrypto !== false &&
|
245
|
+
payOptions.buyWithCrypto?.prefillSource?.allowEdits
|
246
|
+
?.chain === false &&
|
247
|
+
payOptions.buyWithCrypto?.prefillSource?.allowEdits
|
248
|
+
?.token === false) })), screen.id === "buy-with-fiat" && (_jsx(FiatScreenContent, { setScreen: setScreen, tokenAmount: deferredTokenAmount, toChain: toChain, toToken: toToken, selectedCurrency: selectedCurrency, client: client, isEmbed: props.isEmbed, onDone: onDone, payOptions: payOptions, theme: props.theme, showCurrencySelector: () => {
|
201
249
|
setScreen({
|
202
250
|
id: "select-currency",
|
203
251
|
backScreen: screen,
|
@@ -210,48 +258,79 @@ function SelectedTokenInfo(props) {
|
|
210
258
|
}, children: [_jsxs(Container, { flex: "row", gap: "xs", center: "y", children: [_jsx(Text, { color: "primaryText", "data-testid": "tokenAmount", size: "xl", children: formatNumber(Number(props.tokenAmount), 6) }), _jsxs(Container, { flex: "row", gap: "xxs", center: "y", children: [_jsx(TokenSymbol, { token: props.selectedToken, chain: props.selectedChain, size: "md", color: "secondaryText" }), _jsx(PayTokenIcon, { chain: props.selectedChain, client: props.client, size: "sm", token: props.selectedToken })] })] }), _jsx(ChainName, { chain: props.selectedChain, client: props.client, size: "sm", short: true })] }) }));
|
211
259
|
}
|
212
260
|
function MainScreen(props) {
|
213
|
-
const {
|
214
|
-
|
215
|
-
supportedDestinations: props.supportedDestinations,
|
216
|
-
toChain: props.toChain,
|
217
|
-
toToken: props.toToken,
|
218
|
-
});
|
219
|
-
const { buyForTx, setTokenAmount, payerAccount, client, tokenAmount, payOptions, toToken, toChain, } = props;
|
220
|
-
// Buy Transaction flow states
|
221
|
-
const { amountNeeded } = useBuyTxStates({
|
222
|
-
setTokenAmount,
|
223
|
-
buyForTx: buyForTx || null,
|
224
|
-
hasEditedAmount: props.hasEditedAmount,
|
225
|
-
account: payerAccount || null,
|
226
|
-
});
|
261
|
+
const { setTokenAmount, setToChain, setToToken, setFromChain, setFromToken, payerAccount, client, tokenAmount, payOptions, toToken, toChain, supportedDestinations, enabledPaymentMethods, } = props;
|
262
|
+
const { showPaymentSelection, buyWithCryptoEnabled, buyWithFiatEnabled } = enabledPaymentMethods;
|
227
263
|
const disableContinue = !tokenAmount;
|
228
|
-
|
229
|
-
|
230
|
-
|
231
|
-
|
232
|
-
|
233
|
-
|
234
|
-
|
235
|
-
|
236
|
-
|
237
|
-
|
238
|
-
|
239
|
-
|
240
|
-
|
241
|
-
|
242
|
-
|
243
|
-
|
244
|
-
|
245
|
-
|
246
|
-
|
247
|
-
|
248
|
-
|
249
|
-
|
250
|
-
|
251
|
-
|
252
|
-
|
253
|
-
|
254
|
-
|
264
|
+
switch (payOptions.mode) {
|
265
|
+
case "transaction": {
|
266
|
+
return (_jsx(TransactionModeScreen, { supportedDestinations: supportedDestinations, payUiOptions: payOptions, payerAccount: payerAccount, connectOptions: props.connectOptions, client: client, onContinue: (tokenAmount, toChain, toToken) => {
|
267
|
+
setTokenAmount(tokenAmount);
|
268
|
+
setToChain(toChain);
|
269
|
+
setFromChain(toChain);
|
270
|
+
setFromToken(toToken);
|
271
|
+
setToToken(toToken);
|
272
|
+
if (showPaymentSelection) {
|
273
|
+
props.setScreen({ id: "select-payment-method" });
|
274
|
+
}
|
275
|
+
else if (buyWithCryptoEnabled) {
|
276
|
+
props.setScreen({ id: "select-wallet" });
|
277
|
+
}
|
278
|
+
else if (buyWithFiatEnabled) {
|
279
|
+
props.setScreen({ id: "buy-with-fiat" });
|
280
|
+
}
|
281
|
+
else {
|
282
|
+
// default to buy with crypto with connected wallet if chain not supported by pay
|
283
|
+
props.setScreen({ id: "select-wallet" });
|
284
|
+
}
|
285
|
+
} }));
|
286
|
+
}
|
287
|
+
case "direct_payment": {
|
288
|
+
return (_jsx(DirectPaymentModeScreen, { client: client, payUiOptions: payOptions, payerAccount: payerAccount, connectOptions: props.connectOptions, supportedDestinations: supportedDestinations, onContinue: (tokenAmount, toChain, toToken) => {
|
289
|
+
setTokenAmount(tokenAmount);
|
290
|
+
setToChain(toChain);
|
291
|
+
setFromChain(toChain);
|
292
|
+
setFromToken(toToken);
|
293
|
+
setToToken(toToken);
|
294
|
+
if (showPaymentSelection) {
|
295
|
+
props.setScreen({ id: "select-payment-method" });
|
296
|
+
}
|
297
|
+
else if (buyWithCryptoEnabled) {
|
298
|
+
props.setScreen({ id: "buy-with-crypto" });
|
299
|
+
}
|
300
|
+
else if (buyWithFiatEnabled) {
|
301
|
+
props.setScreen({ id: "buy-with-fiat" });
|
302
|
+
}
|
303
|
+
else {
|
304
|
+
// default to buy with crypto with connected wallet if chain not supported by pay
|
305
|
+
props.setScreen({ id: "select-wallet" });
|
306
|
+
}
|
307
|
+
} }));
|
308
|
+
}
|
309
|
+
default: {
|
310
|
+
return (_jsxs(Container, { p: "lg", children: [_jsx(ModalHeader, { title: props.title, onBack: props.onBack }), _jsx(Spacer, { y: "xl" }), _jsx(BuyTokenInput, { value: tokenAmount, onChange: async (value) => {
|
311
|
+
props.setHasEditedAmount(true);
|
312
|
+
setTokenAmount(value);
|
313
|
+
}, freezeAmount: payOptions.prefillBuy?.allowEdits?.amount === false, freezeChainAndToken: payOptions.prefillBuy?.allowEdits?.chain === false &&
|
314
|
+
payOptions.prefillBuy?.allowEdits?.token === false, token: toToken, chain: toChain, onSelectToken: props.onSelectBuyToken, client: props.client }), _jsx(Spacer, { y: "xl" }), _jsx(Container, { flex: "column", gap: "sm", children: !payerAccount ? (_jsx("div", { children: _jsx(ConnectButton, { ...props.connectOptions, client: props.client, theme: props.theme, connectButton: {
|
315
|
+
style: {
|
316
|
+
width: "100%",
|
317
|
+
},
|
318
|
+
} }) })) : (_jsx(Button, { variant: "accent", fullWidth: true, disabled: disableContinue, "data-disabled": disableContinue, onClick: () => {
|
319
|
+
if (showPaymentSelection) {
|
320
|
+
props.setScreen({ id: "select-payment-method" });
|
321
|
+
}
|
322
|
+
else if (buyWithCryptoEnabled) {
|
323
|
+
props.setScreen({ id: "buy-with-crypto" });
|
324
|
+
}
|
325
|
+
else if (buyWithFiatEnabled) {
|
326
|
+
props.setScreen({ id: "buy-with-fiat" });
|
327
|
+
}
|
328
|
+
else {
|
329
|
+
console.error("No payment method enabled");
|
330
|
+
}
|
331
|
+
}, children: "Continue" })) })] }));
|
332
|
+
}
|
333
|
+
}
|
255
334
|
}
|
256
335
|
function TokenSelectedLayout(props) {
|
257
336
|
return (_jsxs(Container, { children: [_jsx(Container, { p: "lg", children: _jsx(ModalHeader, { title: props.title, onBack: props.onBack }) }), _jsxs(Container, { px: "lg", style: {
|
@@ -265,13 +344,14 @@ function PaymentMethodSelection(props) {
|
|
265
344
|
}, children: [_jsx(Container, { color: "secondaryText", flex: "row", center: "both", children: _jsx(IdCardIcon, { style: {
|
266
345
|
width: iconSize.md,
|
267
346
|
height: iconSize.md,
|
268
|
-
} }) }), _jsxs(Container, { flex: "column", gap: "xxs", children: [_jsx(Text, { size: "md", color: "primaryText", children: "Credit Card" }), _jsx(Text, { size: "xs", children: "
|
347
|
+
} }) }), _jsxs(Container, { flex: "column", gap: "xxs", children: [_jsx(Text, { size: "md", color: "primaryText", children: "Credit Card" }), _jsx(Text, { size: "xs", children: "Securely pay with credit card" })] })] }), _jsxs(Button, { variant: "outline", bg: "tertiaryBg", onClick: () => props.setScreen("select-wallet"), style: {
|
269
348
|
justifyContent: "flex-start",
|
270
|
-
}, gap: "sm", children: [_jsx(Container, { color: "secondaryText", flex: "row", center: "both", children: _jsx(CoinsIcon, { size: iconSize.md }) }), _jsxs(Container, { flex: "column", gap: "xxs", children: [_jsx(Text, { size: "md", color: "primaryText", children: "Crypto" }), _jsx(Text, { size: "xs", children: "Pay with
|
349
|
+
}, gap: "sm", children: [_jsx(Container, { color: "secondaryText", flex: "row", center: "both", children: _jsx(CoinsIcon, { size: iconSize.md }) }), _jsxs(Container, { flex: "column", gap: "xxs", children: [_jsx(Text, { size: "md", color: "primaryText", children: "Crypto" }), _jsx(Text, { size: "xs", children: "Pay with your connected wallet" })] })] })] }) }));
|
271
350
|
}
|
272
351
|
function SwapScreenContent(props) {
|
273
|
-
const { setScreen, payer, client, toChain, tokenAmount, toToken, fromChain, fromToken, showFromTokenSelector, payOptions, } = props;
|
274
|
-
const
|
352
|
+
const { setScreen, payer, client, toChain, tokenAmount, toToken, fromChain, fromToken, showFromTokenSelector, payOptions, disableTokenSelection, } = props;
|
353
|
+
const defaultRecipientAddress = props.payOptions?.paymentInfo?.sellerAddress;
|
354
|
+
const receiverAddress = defaultRecipientAddress || props.activeAccount.address;
|
275
355
|
const { drawerRef, drawerOverlayRef, isOpen, setIsOpen } = useDrawer();
|
276
356
|
const [drawerScreen, setDrawerScreen] = useState("fees");
|
277
357
|
const fromTokenBalanceQuery = useWalletBalance({
|
@@ -280,7 +360,15 @@ function SwapScreenContent(props) {
|
|
280
360
|
tokenAddress: isNativeToken(fromToken) ? undefined : fromToken.address,
|
281
361
|
client,
|
282
362
|
});
|
283
|
-
const
|
363
|
+
const fromTokenId = isNativeToken(fromToken)
|
364
|
+
? NATIVE_TOKEN_ADDRESS
|
365
|
+
: fromToken.address.toLowerCase();
|
366
|
+
const toTokenId = isNativeToken(toToken)
|
367
|
+
? NATIVE_TOKEN_ADDRESS
|
368
|
+
: toToken.address.toLowerCase();
|
369
|
+
const swapRequired = !!tokenAmount &&
|
370
|
+
!(fromChain.id === toChain.id && fromTokenId === toTokenId);
|
371
|
+
const quoteParams = swapRequired
|
284
372
|
? {
|
285
373
|
// wallets
|
286
374
|
fromAddress: payer.account.address,
|
@@ -306,11 +394,13 @@ function SwapScreenContent(props) {
|
|
306
394
|
refetchInterval: 30 * 1000,
|
307
395
|
gcTime: 30 * 1000,
|
308
396
|
});
|
309
|
-
const sourceTokenAmount =
|
397
|
+
const sourceTokenAmount = swapRequired
|
398
|
+
? quoteQuery.data?.swapDetails.fromAmount
|
399
|
+
: tokenAmount;
|
310
400
|
const isNotEnoughBalance = !!sourceTokenAmount &&
|
311
401
|
!!fromTokenBalanceQuery.data &&
|
312
402
|
Number(fromTokenBalanceQuery.data.displayValue) < Number(sourceTokenAmount);
|
313
|
-
const disableContinue = !quoteQuery.data || isNotEnoughBalance;
|
403
|
+
const disableContinue = (swapRequired && !quoteQuery.data) || isNotEnoughBalance;
|
314
404
|
const switchChainRequired = props.payer.chain.id !== fromChain.id;
|
315
405
|
// biome-ignore lint/suspicious/noExplicitAny: <explanation>
|
316
406
|
function getErrorMessage(err) {
|
@@ -333,6 +423,22 @@ function SwapScreenContent(props) {
|
|
333
423
|
? getErrorMessage(quoteQuery.error)
|
334
424
|
: undefined;
|
335
425
|
function showSwapFlow() {
|
426
|
+
if ((props.payOptions.mode === "transaction" ||
|
427
|
+
props.payOptions.mode === "direct_payment") &&
|
428
|
+
!isNotEnoughBalance &&
|
429
|
+
!swapRequired) {
|
430
|
+
if (payer.account.address !== receiverAddress) {
|
431
|
+
// same currency, just transfer, but from another wallet
|
432
|
+
setScreen({
|
433
|
+
id: "transfer-flow",
|
434
|
+
});
|
435
|
+
}
|
436
|
+
else {
|
437
|
+
// has enough balance to just do the transaction directly
|
438
|
+
props.onDone();
|
439
|
+
}
|
440
|
+
return;
|
441
|
+
}
|
336
442
|
if (!quoteQuery.data) {
|
337
443
|
return;
|
338
444
|
}
|
@@ -348,40 +454,12 @@ function SwapScreenContent(props) {
|
|
348
454
|
setIsOpen(true);
|
349
455
|
setDrawerScreen("fees");
|
350
456
|
}
|
351
|
-
|
352
|
-
|
353
|
-
: undefined;
|
354
|
-
const disableReceiverSelection = !!props.payOptions.recipientAddress;
|
355
|
-
return (_jsxs(Container, { flex: "column", gap: "md", animate: "fadein", children: [isOpen && (_jsxs(_Fragment, { children: [_jsx(DrawerOverlay, { ref: drawerOverlayRef }), _jsxs(Drawer, { ref: drawerRef, close: () => setIsOpen(false), children: [drawerScreen === "fees" && quoteQuery.data && (_jsxs("div", { children: [_jsx(Text, { size: "lg", color: "primaryText", children: "Fees" }), _jsx(Spacer, { y: "lg" }), _jsx(SwapFees, { quote: quoteQuery.data, align: "left" })] })), drawerScreen === "receiver" && (_jsx(ReceiverWalletDrawerScreen, { client: props.client, onSelect: (x) => setReceiverAddress(x), receiverAddress: receiverAddress, onBack: () => setIsOpen(false) })), drawerScreen === "payer" && (_jsx(WalletSwitcherDrawerContent, { client: client, onSelect: (w) => {
|
356
|
-
const chain = w.getChain();
|
357
|
-
const account = w.getAccount();
|
358
|
-
if (chain && account) {
|
359
|
-
props.setPayer({
|
360
|
-
account,
|
361
|
-
chain,
|
362
|
-
wallet: w,
|
363
|
-
});
|
364
|
-
}
|
365
|
-
}, showAllWallets: !!props.connectOptions?.showAllWallets, wallets: props.connectOptions?.wallets, onBack: () => {
|
366
|
-
setIsOpen(false);
|
367
|
-
}, onConnect: () => {
|
368
|
-
setScreen({
|
369
|
-
id: "connect-payer-wallet",
|
370
|
-
backScreen: {
|
371
|
-
id: "buy-with-crypto",
|
372
|
-
},
|
373
|
-
});
|
374
|
-
}, selectedAddress: payer.account.address }))] })] })), _jsxs("div", { children: [_jsx(WalletSelectorButton, { client: props.client, onClick: () => {
|
375
|
-
setIsOpen(true);
|
376
|
-
setDrawerScreen("payer");
|
457
|
+
return (_jsxs(Container, { flex: "column", gap: "md", animate: "fadein", children: [isOpen && (_jsxs(_Fragment, { children: [_jsx(DrawerOverlay, { ref: drawerOverlayRef }), _jsx(Drawer, { ref: drawerRef, close: () => setIsOpen(false), children: drawerScreen === "fees" && quoteQuery.data && (_jsxs("div", { children: [_jsx(Text, { size: "lg", color: "primaryText", children: "Fees" }), _jsx(Spacer, { y: "lg" }), _jsx(SwapFees, { quote: quoteQuery.data, align: "left" })] })) })] })), _jsxs("div", { children: [_jsx(WalletSelectorButton, { client: props.client, onClick: () => {
|
458
|
+
setScreen({ id: "select-wallet" });
|
377
459
|
}, address: props.payer.account.address, walletId: props.payer.wallet.id, containerStyle: {
|
378
460
|
borderBottomRightRadius: 0,
|
379
461
|
borderBottomLeftRadius: 0,
|
380
|
-
} }), _jsx(PayWithCrypto, { value: sourceTokenAmount || "", onSelectToken: showFromTokenSelector, chain: fromChain, token: fromToken, isLoading: quoteQuery.isLoading && !sourceTokenAmount, client: client, freezeChainAndTokenSelection:
|
381
|
-
prefillSource?.allowEdits?.token === false, payerAccount: props.payer.account }), _jsx(EstimatedTimeAndFees, { quoteIsLoading: quoteQuery.isLoading, estimatedSeconds: quoteQuery.data?.swapDetails.estimated.durationSeconds, onViewFees: showFees }), _jsx(Spacer, { y: "md" }), _jsx(Text, { size: "sm", children: "Send to" }), _jsx(Spacer, { y: "xs" }), _jsx(WalletSelectorButton, { client: props.client, disabled: disableReceiverSelection, disableChevron: disableReceiverSelection, onClick: () => {
|
382
|
-
setIsOpen(true);
|
383
|
-
setDrawerScreen("receiver");
|
384
|
-
}, address: receiverAddress, walletId: undefined })] }), errorMsg && (_jsxs("div", { children: [errorMsg.minAmount && (_jsxs(Text, { color: "danger", size: "sm", center: true, multiline: true, children: ["Minimum amount is ", errorMsg.minAmount, " ", _jsx(TokenSymbol, { token: toToken, chain: toChain, size: "sm", inline: true, color: "danger" })] })), errorMsg.msg?.map((msg) => (_jsx(Text, { color: "danger", size: "sm", center: true, multiline: true, children: msg }, msg)))] })), errorMsg?.minAmount ? (_jsx(Button, { variant: "accent", fullWidth: true, onClick: () => {
|
462
|
+
} }), _jsx(PayWithCrypto, { value: sourceTokenAmount || "", onSelectToken: showFromTokenSelector, chain: fromChain, token: fromToken, isLoading: quoteQuery.isLoading && !sourceTokenAmount, client: client, freezeChainAndTokenSelection: disableTokenSelection, payerAccount: props.payer.account, swapRequired: swapRequired }), swapRequired && (_jsx(EstimatedTimeAndFees, { quoteIsLoading: quoteQuery.isLoading, estimatedSeconds: quoteQuery.data?.swapDetails.estimated.durationSeconds, onViewFees: showFees })), _jsx(Spacer, { y: "md" })] }), errorMsg && (_jsxs("div", { children: [errorMsg.minAmount && (_jsxs(Text, { color: "danger", size: "sm", center: true, multiline: true, children: ["Minimum amount is ", errorMsg.minAmount, " ", _jsx(TokenSymbol, { token: toToken, chain: toChain, size: "sm", inline: true, color: "danger" })] })), errorMsg.msg?.map((msg) => (_jsx(Text, { color: "danger", size: "sm", center: true, multiline: true, children: msg }, msg)))] })), !errorMsg && isNotEnoughBalance && (_jsxs("div", { children: [_jsx(Text, { color: "danger", size: "sm", center: true, multiline: true, children: "Not enough funds." }), _jsx(Text, { color: "danger", size: "sm", center: true, multiline: true, children: "Try a different wallet or token." })] })), errorMsg?.minAmount ? (_jsx(Button, { variant: "accent", fullWidth: true, onClick: () => {
|
385
463
|
props.setTokenAmount(String(errorMsg.minAmount));
|
386
464
|
props.setHasEditedAmount(true);
|
387
465
|
}, children: "Set Minimum" })) : switchChainRequired &&
|
@@ -393,11 +471,12 @@ function SwapScreenContent(props) {
|
|
393
471
|
if (!disableContinue) {
|
394
472
|
showSwapFlow();
|
395
473
|
}
|
396
|
-
}, gap: "xs", children:
|
474
|
+
}, gap: "xs", children: quoteQuery.isLoading ? (_jsxs(_Fragment, { children: ["Getting price quote", _jsx(Spinner, { size: "sm", color: "accentText" })] })) : ("Continue") }))] }));
|
397
475
|
}
|
398
476
|
function FiatScreenContent(props) {
|
399
477
|
const { toToken, tokenAmount, payer, client, setScreen, toChain, showCurrencySelector, selectedCurrency, } = props;
|
400
|
-
const
|
478
|
+
const defaultRecipientAddress = props.payOptions?.paymentInfo?.sellerAddress;
|
479
|
+
const receiverAddress = defaultRecipientAddress || props.payer.account.address;
|
401
480
|
const { drawerRef, drawerOverlayRef, isOpen, setIsOpen } = useDrawer();
|
402
481
|
const [drawerScreen, setDrawerScreen] = useState("fees");
|
403
482
|
const buyWithFiatOptions = props.payOptions.buyWithFiat;
|
@@ -460,32 +539,19 @@ function FiatScreenContent(props) {
|
|
460
539
|
};
|
461
540
|
}
|
462
541
|
const disableSubmit = !fiatQuoteQuery.data;
|
463
|
-
const disableReceiverSelection = !!props.payOptions.recipientAddress;
|
464
542
|
const errorMsg = !fiatQuoteQuery.isLoading && fiatQuoteQuery.error
|
465
543
|
? getErrorMessage(fiatQuoteQuery.error)
|
466
544
|
: undefined;
|
467
|
-
return (_jsxs(Container, { flex: "column", gap: "md", animate: "fadein", children: [isOpen && (_jsxs(_Fragment, { children: [_jsx(DrawerOverlay, { ref: drawerOverlayRef }),
|
468
|
-
setDrawerScreen("receiver");
|
469
|
-
setIsOpen(true);
|
470
|
-
}, address: receiverAddress, disabled: disableReceiverSelection, disableChevron: disableReceiverSelection, walletId: undefined })] }), errorMsg && (_jsxs("div", { children: [errorMsg.minAmount && (_jsxs(Text, { color: "danger", size: "sm", center: true, multiline: true, children: ["Minimum amount is ", errorMsg.minAmount, " ", _jsx(TokenSymbol, { token: toToken, chain: toChain, size: "sm", inline: true, color: "danger" })] })), errorMsg.msg?.map((msg) => (_jsx(Text, { color: "danger", size: "sm", center: true, multiline: true, children: msg }, msg)))] })), errorMsg?.minAmount ? (_jsx(Button, { variant: "accent", fullWidth: true, onClick: () => {
|
545
|
+
return (_jsxs(Container, { flex: "column", gap: "md", animate: "fadein", children: [isOpen && (_jsxs(_Fragment, { children: [_jsx(DrawerOverlay, { ref: drawerOverlayRef }), _jsx(Drawer, { ref: drawerRef, close: () => setIsOpen(false), children: drawerScreen === "fees" && fiatQuoteQuery.data && (_jsxs("div", { children: [_jsx(Text, { size: "lg", color: "primaryText", children: "Fees" }), _jsx(Spacer, { y: "lg" }), _jsx(FiatFees, { quote: fiatQuoteQuery.data })] })) })] })), _jsxs("div", { children: [_jsx(PayWithCreditCard, { isLoading: fiatQuoteQuery.isLoading, value: fiatQuoteQuery.data?.fromCurrencyWithFees.amount, client: client, currency: selectedCurrency, onSelectCurrency: showCurrencySelector }), _jsx(EstimatedTimeAndFees, { quoteIsLoading: fiatQuoteQuery.isLoading, estimatedSeconds: fiatQuoteQuery.data?.estimatedDurationSeconds, onViewFees: showFees }), _jsx(Spacer, { y: "md" })] }), errorMsg && (_jsxs("div", { children: [errorMsg.minAmount && (_jsxs(Text, { color: "danger", size: "sm", center: true, multiline: true, children: ["Minimum amount is ", errorMsg.minAmount, " ", _jsx(TokenSymbol, { token: toToken, chain: toChain, size: "sm", inline: true, color: "danger" })] })), errorMsg.msg?.map((msg) => (_jsx(Text, { color: "danger", size: "sm", center: true, multiline: true, children: msg }, msg)))] })), errorMsg?.minAmount ? (_jsx(Button, { variant: "accent", fullWidth: true, onClick: () => {
|
471
546
|
props.setTokenAmount(String(errorMsg.minAmount));
|
472
547
|
props.setHasEditedAmount(true);
|
473
548
|
}, children: "Set Minimum" })) : (_jsx(Button, { variant: disableSubmit ? "outline" : "accent", "data-disabled": disableSubmit, disabled: disableSubmit, fullWidth: true, onClick: handleSubmit, gap: "xs", children: fiatQuoteQuery.isLoading ? (_jsxs(_Fragment, { children: ["Getting price quote", _jsx(Spinner, { size: "sm", color: "accentText" })] })) : ("Continue") }))] }));
|
474
549
|
}
|
475
|
-
function BuyForTxUI(props) {
|
476
|
-
const chainNameQuery = useChainName(props.buyForTx.tx.chain);
|
477
|
-
return (_jsxs(Container, { children: [_jsx(Spacer, { y: "xs" }), _jsxs(Container, { flex: "row", style: {
|
478
|
-
justifyContent: "space-between",
|
479
|
-
}, children: [_jsx(Text, { size: "sm", children: "Amount Needed" }), _jsxs(Container, { flex: "column", style: {
|
480
|
-
alignItems: "flex-end",
|
481
|
-
}, children: [_jsxs(Container, { flex: "row", gap: "xs", center: "y", children: [_jsxs(Text, { color: "primaryText", size: "sm", children: [props.amountNeeded, " ", props.buyForTx.tokenSymbol] }), _jsx(TokenIcon, { chain: props.buyForTx.tx.chain, client: props.client, size: "sm", token: NATIVE_TOKEN })] }), _jsx(Spacer, { y: "xxs" }), chainNameQuery.name ? (_jsx(Text, { size: "sm", children: chainNameQuery.name })) : (_jsx(Skeleton, { height: fontSize.sm, width: "50px" }))] })] }), _jsx(Spacer, { y: "md" }), _jsx(Line, {}), _jsx(Spacer, { y: "md" }), _jsxs(Container, { flex: "row", style: {
|
482
|
-
justifyContent: "space-between",
|
483
|
-
}, children: [_jsx(Text, { size: "sm", children: "Your Balance" }), _jsxs(Container, { flex: "row", gap: "xs", children: [_jsxs(Text, { color: "primaryText", size: "sm", children: [formatNumber(Number(toEther(props.buyForTx.balance)), 6), " ", props.buyForTx.tokenSymbol] }), _jsx(TokenIcon, { chain: props.buyForTx.tx.chain, client: props.client, size: "sm", token: NATIVE_TOKEN })] })] }), _jsx(Spacer, { y: "md" }), _jsx(Line, {}), _jsx(Spacer, { y: "xl" }), _jsx(Text, { center: true, size: "sm", children: "Purchase" }), _jsx(Spacer, { y: "xxs" })] }));
|
484
|
-
}
|
485
550
|
function createSupportedTokens(data, payOptions, supportedTokensOverrides) {
|
486
551
|
const tokens = {};
|
487
552
|
const isBuyWithFiatDisabled = payOptions.buyWithFiat === false;
|
488
553
|
const isBuyWithCryptoDisabled = payOptions.buyWithCrypto === false;
|
554
|
+
// FIXME (pay) when buywithFiat is disabled, missing a bunch of tokens on base??
|
489
555
|
for (const x of data) {
|
490
556
|
tokens[x.chain.id] = x.tokens.filter((t) => {
|
491
557
|
// it token supports both - include it
|