thirdweb 5.100.2-nightly-88533d9113dc07c97cfaf0162591477c7056e69b-20250522000412 → 5.100.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/bridge/Buy.js +15 -3
- package/dist/cjs/bridge/Buy.js.map +1 -1
- package/dist/cjs/bridge/Chains.js +7 -1
- package/dist/cjs/bridge/Chains.js.map +1 -1
- package/dist/cjs/bridge/Onramp.js +11 -2
- package/dist/cjs/bridge/Onramp.js.map +1 -1
- package/dist/cjs/bridge/OnrampStatus.js +7 -1
- package/dist/cjs/bridge/OnrampStatus.js.map +1 -1
- package/dist/cjs/bridge/Routes.js +7 -1
- package/dist/cjs/bridge/Routes.js.map +1 -1
- package/dist/cjs/bridge/Sell.js +15 -3
- package/dist/cjs/bridge/Sell.js.map +1 -1
- package/dist/cjs/bridge/Status.js +7 -1
- package/dist/cjs/bridge/Status.js.map +1 -1
- package/dist/cjs/bridge/Transfer.js +9 -2
- package/dist/cjs/bridge/Transfer.js.map +1 -1
- package/dist/cjs/bridge/types/Errors.js +31 -0
- package/dist/cjs/bridge/types/Errors.js.map +1 -0
- package/dist/cjs/engine/get-status.js +1 -0
- package/dist/cjs/engine/get-status.js.map +1 -1
- package/dist/cjs/engine/server-wallet.js +4 -1
- package/dist/cjs/engine/server-wallet.js.map +1 -1
- package/dist/cjs/exports/react.js +6 -4
- package/dist/cjs/exports/react.js.map +1 -1
- package/dist/cjs/exports/react.native.js +6 -4
- package/dist/cjs/exports/react.native.js.map +1 -1
- package/dist/cjs/pay/buyWithCrypto/getQuote.js +2 -0
- package/dist/cjs/pay/buyWithCrypto/getQuote.js.map +1 -1
- package/dist/cjs/pay/buyWithCrypto/getTransfer.js +1 -0
- package/dist/cjs/pay/buyWithCrypto/getTransfer.js.map +1 -1
- package/dist/cjs/pay/buyWithFiat/getPostOnRampQuote.js +2 -1
- package/dist/cjs/pay/buyWithFiat/getPostOnRampQuote.js.map +1 -1
- package/dist/cjs/pay/buyWithFiat/getQuote.js +1 -0
- package/dist/cjs/pay/buyWithFiat/getQuote.js.map +1 -1
- package/dist/cjs/react/core/hooks/wallets/useAuthToken.js +42 -0
- package/dist/cjs/react/core/hooks/wallets/useAuthToken.js.map +1 -0
- package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/BuyScreen.js +4 -4
- package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/BuyScreen.js.map +1 -1
- package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/PayProviderSelection.js +27 -0
- package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/PayProviderSelection.js.map +1 -0
- package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/PayWIthCreditCard.js +1 -1
- package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/fiat/FiatScreenContent.js +20 -23
- package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/fiat/FiatScreenContent.js.map +1 -1
- package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/fiat/OnRampScreen.js +5 -1
- package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/fiat/OnRampScreen.js.map +1 -1
- package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/fiat/Providers.js +6 -9
- package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/fiat/Providers.js.map +1 -1
- package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/swap/SwapScreenContent.js +2 -5
- package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/swap/SwapScreenContent.js.map +1 -1
- package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/swap/TransferConfirmationScreen.js +2 -1
- package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/swap/TransferConfirmationScreen.js.map +1 -1
- package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/swap/TransferFlow.js.map +1 -1
- package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/swap/useSwapSupportedChains.js +1 -1
- package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/swap/useSwapSupportedChains.js.map +1 -1
- package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/utils.js +9 -0
- package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/utils.js.map +1 -1
- package/dist/cjs/react/web/ui/PayEmbed.js +1 -1
- package/dist/cjs/react/web/ui/PayEmbed.js.map +1 -1
- package/dist/cjs/react/web/utils/errors.js +20 -1
- package/dist/cjs/react/web/utils/errors.js.map +1 -1
- package/dist/cjs/react/web/wallets/in-app/CountrySelector.js +10 -8
- package/dist/cjs/react/web/wallets/in-app/CountrySelector.js.map +1 -1
- package/dist/cjs/react/web/wallets/in-app/InputSelectionUI.js +6 -2
- package/dist/cjs/react/web/wallets/in-app/InputSelectionUI.js.map +1 -1
- package/dist/cjs/react/web/wallets/shared/ConnectWalletSocialOptions.js +1 -1
- package/dist/cjs/react/web/wallets/shared/ConnectWalletSocialOptions.js.map +1 -1
- package/dist/cjs/utils/bytecode/resolveImplementation.js +1 -1
- package/dist/cjs/utils/ens/avatar.js +1 -1
- package/dist/cjs/utils/ens/avatar.js.map +1 -1
- package/dist/cjs/version.js +1 -1
- package/dist/cjs/version.js.map +1 -1
- package/dist/cjs/wallets/in-app/core/wallet/in-app-core.js +17 -0
- package/dist/cjs/wallets/in-app/core/wallet/in-app-core.js.map +1 -1
- package/dist/cjs/wallets/in-app/native/native-connector.js.map +1 -1
- package/dist/cjs/wallets/in-app/web/lib/web-connector.js.map +1 -1
- package/dist/esm/bridge/Buy.js +15 -3
- package/dist/esm/bridge/Buy.js.map +1 -1
- package/dist/esm/bridge/Chains.js +7 -1
- package/dist/esm/bridge/Chains.js.map +1 -1
- package/dist/esm/bridge/Onramp.js +11 -2
- package/dist/esm/bridge/Onramp.js.map +1 -1
- package/dist/esm/bridge/OnrampStatus.js +7 -1
- package/dist/esm/bridge/OnrampStatus.js.map +1 -1
- package/dist/esm/bridge/Routes.js +7 -1
- package/dist/esm/bridge/Routes.js.map +1 -1
- package/dist/esm/bridge/Sell.js +15 -3
- package/dist/esm/bridge/Sell.js.map +1 -1
- package/dist/esm/bridge/Status.js +7 -1
- package/dist/esm/bridge/Status.js.map +1 -1
- package/dist/esm/bridge/Transfer.js +9 -2
- package/dist/esm/bridge/Transfer.js.map +1 -1
- package/dist/esm/bridge/types/Errors.js +27 -0
- package/dist/esm/bridge/types/Errors.js.map +1 -0
- package/dist/esm/engine/get-status.js +1 -0
- package/dist/esm/engine/get-status.js.map +1 -1
- package/dist/esm/engine/server-wallet.js +4 -1
- package/dist/esm/engine/server-wallet.js.map +1 -1
- package/dist/esm/exports/react.js +2 -1
- package/dist/esm/exports/react.js.map +1 -1
- package/dist/esm/exports/react.native.js +2 -1
- package/dist/esm/exports/react.native.js.map +1 -1
- package/dist/esm/pay/buyWithCrypto/getQuote.js +2 -0
- package/dist/esm/pay/buyWithCrypto/getQuote.js.map +1 -1
- package/dist/esm/pay/buyWithCrypto/getTransfer.js +1 -0
- package/dist/esm/pay/buyWithCrypto/getTransfer.js.map +1 -1
- package/dist/esm/pay/buyWithFiat/getPostOnRampQuote.js +2 -1
- package/dist/esm/pay/buyWithFiat/getPostOnRampQuote.js.map +1 -1
- package/dist/esm/pay/buyWithFiat/getQuote.js +1 -0
- package/dist/esm/pay/buyWithFiat/getQuote.js.map +1 -1
- package/dist/esm/react/core/hooks/wallets/useAuthToken.js +39 -0
- package/dist/esm/react/core/hooks/wallets/useAuthToken.js.map +1 -0
- package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/BuyScreen.js +4 -4
- package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/BuyScreen.js.map +1 -1
- package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/PayProviderSelection.js +23 -0
- package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/PayProviderSelection.js.map +1 -0
- package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/PayWIthCreditCard.js +1 -1
- package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/fiat/FiatScreenContent.js +20 -23
- package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/fiat/FiatScreenContent.js.map +1 -1
- package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/fiat/OnRampScreen.js +5 -1
- package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/fiat/OnRampScreen.js.map +1 -1
- package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/fiat/Providers.js +6 -9
- package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/fiat/Providers.js.map +1 -1
- package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/swap/SwapScreenContent.js +2 -5
- package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/swap/SwapScreenContent.js.map +1 -1
- package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/swap/TransferConfirmationScreen.js +2 -1
- package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/swap/TransferConfirmationScreen.js.map +1 -1
- package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/swap/TransferFlow.js.map +1 -1
- package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/swap/useSwapSupportedChains.js +1 -1
- package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/swap/useSwapSupportedChains.js.map +1 -1
- package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/utils.js +8 -0
- package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/utils.js.map +1 -1
- package/dist/esm/react/web/ui/PayEmbed.js +1 -1
- package/dist/esm/react/web/ui/PayEmbed.js.map +1 -1
- package/dist/esm/react/web/utils/errors.js +20 -1
- package/dist/esm/react/web/utils/errors.js.map +1 -1
- package/dist/esm/react/web/wallets/in-app/CountrySelector.js +10 -8
- package/dist/esm/react/web/wallets/in-app/CountrySelector.js.map +1 -1
- package/dist/esm/react/web/wallets/in-app/InputSelectionUI.js +6 -2
- package/dist/esm/react/web/wallets/in-app/InputSelectionUI.js.map +1 -1
- package/dist/esm/react/web/wallets/shared/ConnectWalletSocialOptions.js +1 -1
- package/dist/esm/react/web/wallets/shared/ConnectWalletSocialOptions.js.map +1 -1
- package/dist/esm/utils/bytecode/resolveImplementation.js +1 -1
- package/dist/esm/utils/ens/avatar.js +1 -1
- package/dist/esm/utils/ens/avatar.js.map +1 -1
- package/dist/esm/version.js +1 -1
- package/dist/esm/version.js.map +1 -1
- package/dist/esm/wallets/in-app/core/wallet/in-app-core.js +17 -0
- package/dist/esm/wallets/in-app/core/wallet/in-app-core.js.map +1 -1
- package/dist/esm/wallets/in-app/native/native-connector.js.map +1 -1
- package/dist/esm/wallets/in-app/web/lib/web-connector.js.map +1 -1
- package/dist/types/bridge/Buy.d.ts +4 -0
- package/dist/types/bridge/Buy.d.ts.map +1 -1
- package/dist/types/bridge/Chains.d.ts.map +1 -1
- package/dist/types/bridge/Onramp.d.ts +4 -0
- package/dist/types/bridge/Onramp.d.ts.map +1 -1
- package/dist/types/bridge/OnrampStatus.d.ts.map +1 -1
- package/dist/types/bridge/Routes.d.ts.map +1 -1
- package/dist/types/bridge/Sell.d.ts +4 -0
- package/dist/types/bridge/Sell.d.ts.map +1 -1
- package/dist/types/bridge/Status.d.ts.map +1 -1
- package/dist/types/bridge/Transfer.d.ts +4 -0
- package/dist/types/bridge/Transfer.d.ts.map +1 -1
- package/dist/types/bridge/index.d.ts +2 -1
- package/dist/types/bridge/index.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 +14 -0
- package/dist/types/bridge/types/Errors.d.ts.map +1 -0
- package/dist/types/bridge/types/Route.d.ts +2 -2
- package/dist/types/bridge/types/Route.d.ts.map +1 -1
- package/dist/types/engine/get-status.d.ts.map +1 -1
- package/dist/types/engine/server-wallet.d.ts.map +1 -1
- package/dist/types/exports/react.d.ts +2 -1
- package/dist/types/exports/react.d.ts.map +1 -1
- package/dist/types/exports/react.native.d.ts +2 -1
- package/dist/types/exports/react.native.d.ts.map +1 -1
- package/dist/types/pay/buyWithCrypto/getQuote.d.ts +4 -0
- package/dist/types/pay/buyWithCrypto/getQuote.d.ts.map +1 -1
- package/dist/types/pay/buyWithCrypto/getTransfer.d.ts +4 -0
- package/dist/types/pay/buyWithCrypto/getTransfer.d.ts.map +1 -1
- package/dist/types/pay/buyWithFiat/getPostOnRampQuote.d.ts +5 -1
- package/dist/types/pay/buyWithFiat/getPostOnRampQuote.d.ts.map +1 -1
- package/dist/types/pay/buyWithFiat/getQuote.d.ts +4 -0
- package/dist/types/pay/buyWithFiat/getQuote.d.ts.map +1 -1
- package/dist/types/react/core/hooks/connection/ConnectButtonProps.d.ts +1 -0
- package/dist/types/react/core/hooks/connection/ConnectButtonProps.d.ts.map +1 -1
- package/dist/types/react/core/hooks/wallets/useAuthToken.d.ts +26 -0
- package/dist/types/react/core/hooks/wallets/useAuthToken.d.ts.map +1 -0
- package/dist/types/react/web/ui/ConnectWallet/screens/Buy/BuyScreen.d.ts +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/PayProviderSelection.d.ts +12 -0
- package/dist/types/react/web/ui/ConnectWallet/screens/Buy/PayProviderSelection.d.ts.map +1 -0
- package/dist/types/react/web/ui/ConnectWallet/screens/Buy/fiat/FiatScreenContent.d.ts +2 -1
- package/dist/types/react/web/ui/ConnectWallet/screens/Buy/fiat/FiatScreenContent.d.ts.map +1 -1
- package/dist/types/react/web/ui/ConnectWallet/screens/Buy/fiat/OnRampScreen.d.ts +1 -0
- package/dist/types/react/web/ui/ConnectWallet/screens/Buy/fiat/OnRampScreen.d.ts.map +1 -1
- package/dist/types/react/web/ui/ConnectWallet/screens/Buy/fiat/Providers.d.ts +2 -1
- package/dist/types/react/web/ui/ConnectWallet/screens/Buy/fiat/Providers.d.ts.map +1 -1
- package/dist/types/react/web/ui/ConnectWallet/screens/Buy/swap/SwapScreenContent.d.ts +1 -0
- package/dist/types/react/web/ui/ConnectWallet/screens/Buy/swap/SwapScreenContent.d.ts.map +1 -1
- package/dist/types/react/web/ui/ConnectWallet/screens/Buy/swap/TransferConfirmationScreen.d.ts +1 -0
- package/dist/types/react/web/ui/ConnectWallet/screens/Buy/swap/TransferConfirmationScreen.d.ts.map +1 -1
- package/dist/types/react/web/ui/ConnectWallet/screens/Buy/swap/TransferFlow.d.ts +1 -0
- package/dist/types/react/web/ui/ConnectWallet/screens/Buy/swap/TransferFlow.d.ts.map +1 -1
- package/dist/types/react/web/ui/ConnectWallet/screens/Buy/utils.d.ts +6 -0
- package/dist/types/react/web/ui/ConnectWallet/screens/Buy/utils.d.ts.map +1 -1
- package/dist/types/react/web/ui/PayEmbed.d.ts +4 -0
- package/dist/types/react/web/ui/PayEmbed.d.ts.map +1 -1
- package/dist/types/react/web/utils/errors.d.ts +2 -8
- package/dist/types/react/web/utils/errors.d.ts.map +1 -1
- package/dist/types/react/web/wallets/in-app/CountrySelector.d.ts +2 -1
- package/dist/types/react/web/wallets/in-app/CountrySelector.d.ts.map +1 -1
- package/dist/types/react/web/wallets/in-app/InputSelectionUI.d.ts +1 -0
- package/dist/types/react/web/wallets/in-app/InputSelectionUI.d.ts.map +1 -1
- package/dist/types/react/web/wallets/shared/ConnectWalletSocialOptions.d.ts.map +1 -1
- package/dist/types/utils/bytecode/resolveImplementation.d.ts +1 -1
- package/dist/types/version.d.ts +1 -1
- package/dist/types/version.d.ts.map +1 -1
- package/dist/types/wallets/ecosystem/types.d.ts +4 -0
- package/dist/types/wallets/ecosystem/types.d.ts.map +1 -1
- package/dist/types/wallets/in-app/core/interfaces/connector.d.ts +2 -0
- package/dist/types/wallets/in-app/core/interfaces/connector.d.ts.map +1 -1
- package/dist/types/wallets/in-app/core/wallet/in-app-core.d.ts.map +1 -1
- package/dist/types/wallets/in-app/core/wallet/types.d.ts +4 -0
- package/dist/types/wallets/in-app/core/wallet/types.d.ts.map +1 -1
- package/dist/types/wallets/in-app/native/native-connector.d.ts +2 -1
- package/dist/types/wallets/in-app/native/native-connector.d.ts.map +1 -1
- package/dist/types/wallets/in-app/web/lib/web-connector.d.ts +2 -1
- package/dist/types/wallets/in-app/web/lib/web-connector.d.ts.map +1 -1
- package/dist/types/wallets/interfaces/wallet.d.ts +10 -0
- package/dist/types/wallets/interfaces/wallet.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/bridge/Buy.ts +19 -6
- package/src/bridge/Chains.ts +7 -1
- package/src/bridge/Onramp.ts +16 -3
- package/src/bridge/OnrampStatus.ts +7 -3
- package/src/bridge/Routes.test.ts +1 -1
- package/src/bridge/Routes.ts +7 -1
- package/src/bridge/Sell.ts +19 -6
- package/src/bridge/Status.ts +7 -3
- package/src/bridge/Transfer.ts +13 -3
- package/src/bridge/index.ts +2 -1
- package/src/bridge/types/BridgeAction.ts +1 -1
- package/src/bridge/types/Errors.ts +24 -0
- package/src/bridge/types/Route.ts +2 -2
- package/src/engine/get-status.ts +1 -0
- package/src/engine/server-wallet.test.ts +16 -16
- package/src/engine/server-wallet.ts +4 -1
- package/src/exports/react.native.ts +2 -1
- package/src/exports/react.ts +2 -1
- package/src/pay/buyWithCrypto/getQuote.ts +7 -0
- package/src/pay/buyWithCrypto/getTransfer.ts +6 -0
- package/src/pay/buyWithFiat/getPostOnRampQuote.ts +7 -0
- package/src/pay/buyWithFiat/getQuote.ts +6 -0
- package/src/react/core/hooks/connection/ConnectButtonProps.ts +1 -0
- package/src/react/core/hooks/wallets/useAuthToken.ts +41 -0
- package/src/react/web/ui/ConnectWallet/screens/Buy/BuyScreen.tsx +6 -0
- package/src/react/web/ui/ConnectWallet/screens/Buy/PayProviderSelection.tsx +68 -0
- package/src/react/web/ui/ConnectWallet/screens/Buy/PayWIthCreditCard.tsx +1 -1
- package/src/react/web/ui/ConnectWallet/screens/Buy/fiat/FiatScreenContent.tsx +63 -105
- package/src/react/web/ui/ConnectWallet/screens/Buy/fiat/OnRampScreen.tsx +8 -1
- package/src/react/web/ui/ConnectWallet/screens/Buy/fiat/Providers.tsx +30 -33
- package/src/react/web/ui/ConnectWallet/screens/Buy/swap/SwapScreenContent.tsx +9 -38
- package/src/react/web/ui/ConnectWallet/screens/Buy/swap/TransferConfirmationScreen.tsx +3 -0
- package/src/react/web/ui/ConnectWallet/screens/Buy/swap/TransferFlow.tsx +1 -0
- package/src/react/web/ui/ConnectWallet/screens/Buy/swap/useSwapSupportedChains.ts +1 -1
- package/src/react/web/ui/ConnectWallet/screens/Buy/utils.ts +9 -0
- package/src/react/web/ui/PayEmbed.tsx +6 -0
- package/src/react/web/utils/errors.ts +24 -8
- package/src/react/web/wallets/in-app/CountrySelector.tsx +14 -7
- package/src/react/web/wallets/in-app/InputSelectionUI.test.tsx +23 -0
- package/src/react/web/wallets/in-app/InputSelectionUI.tsx +7 -1
- package/src/react/web/wallets/shared/ConnectWalletSocialOptions.tsx +3 -0
- package/src/utils/bytecode/resolveImplementation.ts +1 -1
- package/src/utils/ens/avatar.ts +1 -1
- package/src/version.ts +1 -1
- package/src/wallets/ecosystem/types.ts +5 -0
- package/src/wallets/in-app/core/interfaces/connector.ts +2 -0
- package/src/wallets/in-app/core/wallet/in-app-core.ts +15 -0
- package/src/wallets/in-app/core/wallet/types.ts +5 -0
- package/src/wallets/in-app/native/native-connector.ts +1 -1
- package/src/wallets/in-app/web/lib/web-connector.ts +1 -1
- package/src/wallets/interfaces/wallet.ts +11 -1
@@ -1,14 +1,14 @@
|
|
1
|
-
import {
|
2
|
-
type FiatProvider,
|
3
|
-
FiatProviders,
|
4
|
-
} from "../../../../../../../pay/utils/commonTypes.js";
|
1
|
+
import type { FiatProvider } from "../../../../../../../pay/utils/commonTypes.js";
|
5
2
|
import { Container } from "../../../../components/basic.js";
|
6
3
|
import { Button } from "../../../../components/buttons.js";
|
7
4
|
import { Link } from "../../../../components/text.js";
|
5
|
+
import { getProviderLabel } from "../utils.js";
|
8
6
|
/**
|
9
7
|
* @internal
|
10
8
|
*/
|
9
|
+
|
11
10
|
export function Providers(props: {
|
11
|
+
supportedProviders: FiatProvider[];
|
12
12
|
preferredProvider?: FiatProvider;
|
13
13
|
onSelect: (provider: FiatProvider) => void;
|
14
14
|
}) {
|
@@ -21,37 +21,34 @@ export function Providers(props: {
|
|
21
21
|
alignItems: "flex-start",
|
22
22
|
}}
|
23
23
|
>
|
24
|
-
{
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
24
|
+
{props.supportedProviders.map((provider) => (
|
25
|
+
<Container
|
26
|
+
key={provider}
|
27
|
+
flex="row"
|
28
|
+
expand
|
29
|
+
style={{
|
30
|
+
justifyContent: "space-between",
|
31
|
+
}}
|
32
|
+
>
|
33
|
+
<Button
|
34
|
+
fullWidth
|
35
|
+
onClick={() => props.onSelect(provider)}
|
36
|
+
variant={"link"}
|
33
37
|
>
|
34
|
-
<
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
+
<Link
|
39
|
+
color={
|
40
|
+
props.preferredProvider === provider
|
41
|
+
? "primaryText"
|
42
|
+
: "secondaryText"
|
43
|
+
}
|
44
|
+
size="sm"
|
45
|
+
hoverColor="primaryText"
|
38
46
|
>
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
}
|
45
|
-
size="sm"
|
46
|
-
hoverColor="primaryText"
|
47
|
-
>
|
48
|
-
{provider.charAt(0).toUpperCase() +
|
49
|
-
provider.slice(1).toLowerCase()}
|
50
|
-
</Link>
|
51
|
-
</Button>
|
52
|
-
</Container>
|
53
|
-
);
|
54
|
-
})}
|
47
|
+
{getProviderLabel(provider)}
|
48
|
+
</Link>
|
49
|
+
</Button>
|
50
|
+
</Container>
|
51
|
+
))}
|
55
52
|
</Container>
|
56
53
|
);
|
57
54
|
}
|
@@ -8,7 +8,6 @@ import { NATIVE_TOKEN_ADDRESS } from "../../../../../../../constants/addresses.j
|
|
8
8
|
import { getContract } from "../../../../../../../contract/contract.js";
|
9
9
|
import { allowance } from "../../../../../../../extensions/erc20/__generated__/IERC20/read/allowance.js";
|
10
10
|
import type { GetBuyWithCryptoQuoteParams } from "../../../../../../../pay/buyWithCrypto/getQuote.js";
|
11
|
-
import { formatNumber } from "../../../../../../../utils/formatNumber.js";
|
12
11
|
import type { Account } from "../../../../../../../wallets/interfaces/wallet.js";
|
13
12
|
import type { PayUIOptions } from "../../../../../../core/hooks/connection/ConnectButtonProps.js";
|
14
13
|
import { useWalletBalance } from "../../../../../../core/hooks/others/useWalletBalance.js";
|
@@ -55,6 +54,7 @@ export function SwapScreenContent(props: {
|
|
55
54
|
setTokenAmount: (amount: string) => void;
|
56
55
|
setHasEditedAmount: (hasEdited: boolean) => void;
|
57
56
|
disableTokenSelection: boolean;
|
57
|
+
paymentLinkId: undefined | string;
|
58
58
|
}) {
|
59
59
|
const {
|
60
60
|
setScreen,
|
@@ -121,6 +121,7 @@ export function SwapScreenContent(props: {
|
|
121
121
|
toAmount: tokenAmount,
|
122
122
|
client,
|
123
123
|
purchaseData: payOptions.purchaseData,
|
124
|
+
paymentLinkId: props.paymentLinkId,
|
124
125
|
}
|
125
126
|
: undefined;
|
126
127
|
|
@@ -286,28 +287,14 @@ export function SwapScreenContent(props: {
|
|
286
287
|
{/* Error message */}
|
287
288
|
{errorMsg && (
|
288
289
|
<div>
|
289
|
-
|
290
|
+
<div>
|
290
291
|
<Text color="danger" size="xs" center multiline>
|
291
|
-
|
292
|
-
{formatNumber(Number(errorMsg.data.minimumAmountEth), 6)}{" "}
|
293
|
-
<TokenSymbol
|
294
|
-
token={toToken}
|
295
|
-
chain={toChain}
|
296
|
-
size="sm"
|
297
|
-
inline
|
298
|
-
color="danger"
|
299
|
-
/>
|
292
|
+
{errorMsg.title}
|
300
293
|
</Text>
|
301
|
-
|
302
|
-
|
303
|
-
|
304
|
-
|
305
|
-
</Text>
|
306
|
-
<Text size="xs" center multiline>
|
307
|
-
{errorMsg.message}
|
308
|
-
</Text>
|
309
|
-
</div>
|
310
|
-
)}
|
294
|
+
<Text size="xs" center multiline>
|
295
|
+
{errorMsg.message}
|
296
|
+
</Text>
|
297
|
+
</div>
|
311
298
|
</div>
|
312
299
|
)}
|
313
300
|
|
@@ -324,23 +311,7 @@ export function SwapScreenContent(props: {
|
|
324
311
|
</Container>
|
325
312
|
|
326
313
|
{/* Button */}
|
327
|
-
{errorMsg
|
328
|
-
<Button
|
329
|
-
variant="accent"
|
330
|
-
fullWidth
|
331
|
-
onClick={() => {
|
332
|
-
props.setTokenAmount(
|
333
|
-
formatNumber(
|
334
|
-
Number(errorMsg.data?.minimumAmountEth),
|
335
|
-
6,
|
336
|
-
).toString(),
|
337
|
-
);
|
338
|
-
props.setHasEditedAmount(true);
|
339
|
-
}}
|
340
|
-
>
|
341
|
-
Set Minimum
|
342
|
-
</Button>
|
343
|
-
) : isNotEnoughBalance || errorMsg ? (
|
314
|
+
{isNotEnoughBalance || errorMsg ? (
|
344
315
|
<Button
|
345
316
|
variant="accent"
|
346
317
|
fullWidth
|
@@ -52,6 +52,7 @@ type TransferConfirmationScreenProps = {
|
|
52
52
|
transactionMode?: boolean;
|
53
53
|
payOptions?: PayUIOptions;
|
54
54
|
onSuccess: ((status: BuyWithCryptoStatus) => void) | undefined;
|
55
|
+
paymentLinkId: undefined | string;
|
55
56
|
};
|
56
57
|
|
57
58
|
export function TransferConfirmationScreen(
|
@@ -70,6 +71,7 @@ export function TransferConfirmationScreen(
|
|
70
71
|
transactionMode,
|
71
72
|
setTransactionHash,
|
72
73
|
payOptions,
|
74
|
+
paymentLinkId,
|
73
75
|
} = props;
|
74
76
|
const [step, setStep] = useState<"approve" | "transfer" | "execute">(
|
75
77
|
"transfer",
|
@@ -105,6 +107,7 @@ export function TransferConfirmationScreen(
|
|
105
107
|
payOptions?.mode === "direct_payment"
|
106
108
|
? payOptions.paymentInfo.feePayer
|
107
109
|
: undefined,
|
110
|
+
paymentLinkId: paymentLinkId,
|
108
111
|
});
|
109
112
|
return transferResponse;
|
110
113
|
},
|
@@ -1,3 +1,12 @@
|
|
1
1
|
export function getBuyTokenAmountFontSize(value: string) {
|
2
2
|
return value.length > 10 ? "26px" : value.length > 6 ? "34px" : "50px";
|
3
3
|
}
|
4
|
+
|
5
|
+
/**
|
6
|
+
*
|
7
|
+
* @param str accepts any string but expects a fully upppercased string / type FiatProvider
|
8
|
+
* @returns Fiat provider label to be rendered used within presentation logic
|
9
|
+
*/
|
10
|
+
export function getProviderLabel(str: string) {
|
11
|
+
return str.charAt(0).toUpperCase() + str.slice(1).toLowerCase();
|
12
|
+
}
|
@@ -144,6 +144,11 @@ export type PayEmbedProps = {
|
|
144
144
|
style?: React.CSSProperties;
|
145
145
|
|
146
146
|
className?: string;
|
147
|
+
|
148
|
+
/**
|
149
|
+
* @hidden
|
150
|
+
*/
|
151
|
+
paymentLinkId?: string;
|
147
152
|
};
|
148
153
|
|
149
154
|
/**
|
@@ -365,6 +370,7 @@ export function PayEmbed(props: PayEmbedProps) {
|
|
365
370
|
client={props.client}
|
366
371
|
connectLocale={localeQuery.data}
|
367
372
|
hiddenWallets={props.hiddenWallets}
|
373
|
+
paymentLinkId={props.paymentLinkId}
|
368
374
|
payOptions={
|
369
375
|
props.payOptions || {
|
370
376
|
mode: "fund_wallet",
|
@@ -1,17 +1,21 @@
|
|
1
|
-
|
1
|
+
import { ApiError } from "../../../bridge/types/Errors.js";
|
2
|
+
|
3
|
+
type UiError = {
|
2
4
|
code: string;
|
3
5
|
title: string;
|
4
6
|
message: string;
|
5
|
-
data?: {
|
6
|
-
minimumAmountUSDCents?: string;
|
7
|
-
requestedAmountUSDCents?: string;
|
8
|
-
minimumAmountWei?: string;
|
9
|
-
minimumAmountEth?: string;
|
10
|
-
};
|
11
7
|
};
|
12
8
|
|
13
9
|
// biome-ignore lint/suspicious/noExplicitAny: <explanation>
|
14
|
-
export function getErrorMessage(err: any):
|
10
|
+
export function getErrorMessage(err: any): UiError {
|
11
|
+
if (err instanceof ApiError) {
|
12
|
+
return {
|
13
|
+
code: err.code,
|
14
|
+
title: "Failed to Find Quote",
|
15
|
+
message: getErrorMessageFromBridgeApiError(err),
|
16
|
+
};
|
17
|
+
}
|
18
|
+
|
15
19
|
if (typeof err.error === "object" && err.error.code) {
|
16
20
|
if (err.error.code === "MINIMUM_PURCHASE_AMOUNT") {
|
17
21
|
return {
|
@@ -29,6 +33,18 @@ export function getErrorMessage(err: any): ApiError {
|
|
29
33
|
code: "UNABLE_TO_GET_PRICE_QUOTE",
|
30
34
|
title: "Failed to Find Quote",
|
31
35
|
message:
|
36
|
+
err.message ||
|
32
37
|
"We couldn't get a quote for this token pair. Select another token or pay with card.",
|
33
38
|
};
|
34
39
|
}
|
40
|
+
|
41
|
+
function getErrorMessageFromBridgeApiError(err: ApiError) {
|
42
|
+
let msg = err.message;
|
43
|
+
if (msg.includes("Details")) {
|
44
|
+
msg = msg.substring(0, msg.indexOf("Details"));
|
45
|
+
}
|
46
|
+
if (msg.includes("{")) {
|
47
|
+
msg = msg.substring(0, msg.indexOf("{"));
|
48
|
+
}
|
49
|
+
return msg;
|
50
|
+
}
|
@@ -21,19 +21,26 @@ export function getCountrySelector(countryIsoCode: SupportedSmsCountry) {
|
|
21
21
|
export function CountrySelector({
|
22
22
|
countryCode,
|
23
23
|
setCountryCode,
|
24
|
+
allowedCountryCodes,
|
24
25
|
}: {
|
25
26
|
countryCode: string;
|
26
27
|
setCountryCode: React.Dispatch<React.SetStateAction<string>>;
|
28
|
+
allowedCountryCodes?: SupportedSmsCountry[];
|
27
29
|
}) {
|
28
30
|
const selectRef = useRef<HTMLSelectElement>(null);
|
29
31
|
|
30
|
-
const supportedCountriesForSms =
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
32
|
+
const supportedCountriesForSms =
|
33
|
+
allowedCountryCodes && allowedCountryCodes.length > 0
|
34
|
+
? supportedSmsCountries.filter((c) =>
|
35
|
+
allowedCountryCodes.includes(c.countryIsoCode as SupportedSmsCountry),
|
36
|
+
)
|
37
|
+
: (supportedSmsCountries ?? [
|
38
|
+
{
|
39
|
+
countryIsoCode: "US",
|
40
|
+
countryName: "United States",
|
41
|
+
phoneNumberCode: 1,
|
42
|
+
},
|
43
|
+
]);
|
37
44
|
|
38
45
|
return (
|
39
46
|
<>
|
@@ -42,4 +42,27 @@ describe("InputSelectionUI", () => {
|
|
42
42
|
|
43
43
|
expect(screen.getByRole("combobox")).toHaveValue("US +1");
|
44
44
|
});
|
45
|
+
|
46
|
+
it("should filter countries based on allowedSmsCountryCodes", () => {
|
47
|
+
const mockGetCountrySelector = vi.mocked(getCountrySelector);
|
48
|
+
mockGetCountrySelector.mockReturnValue("IN +91");
|
49
|
+
|
50
|
+
render(
|
51
|
+
<InputSelectionUI
|
52
|
+
onSelect={vi.fn()}
|
53
|
+
placeholder=""
|
54
|
+
name=""
|
55
|
+
type=""
|
56
|
+
submitButtonText=""
|
57
|
+
format="phone"
|
58
|
+
allowedSmsCountryCodes={["IN", "BR"]}
|
59
|
+
/>,
|
60
|
+
);
|
61
|
+
|
62
|
+
const options = screen.getAllByRole("option");
|
63
|
+
const optionTexts = options.map((o) => o.textContent);
|
64
|
+
expect(optionTexts.some((t) => t?.includes("India"))).toBe(true);
|
65
|
+
expect(optionTexts.some((t) => t?.includes("Brazil"))).toBe(true);
|
66
|
+
expect(optionTexts.some((t) => t?.includes("United States"))).toBe(false);
|
67
|
+
});
|
45
68
|
});
|
@@ -24,11 +24,16 @@ export function InputSelectionUI(props: {
|
|
24
24
|
format?: "phone";
|
25
25
|
disabled?: boolean;
|
26
26
|
defaultSmsCountryCode?: SupportedSmsCountry;
|
27
|
+
allowedSmsCountryCodes?: SupportedSmsCountry[];
|
27
28
|
}) {
|
28
29
|
const [countryCodeInfo, setCountryCodeInfo] = useState(
|
29
30
|
props.defaultSmsCountryCode
|
30
31
|
? getCountrySelector(props.defaultSmsCountryCode)
|
31
|
-
:
|
32
|
+
: props.allowedSmsCountryCodes &&
|
33
|
+
props.allowedSmsCountryCodes.length > 0 &&
|
34
|
+
props.allowedSmsCountryCodes[0]
|
35
|
+
? getCountrySelector(props.allowedSmsCountryCodes[0])
|
36
|
+
: "US +1",
|
32
37
|
);
|
33
38
|
const [input, setInput] = useState("");
|
34
39
|
const [error, setError] = useState<string | undefined>();
|
@@ -69,6 +74,7 @@ export function InputSelectionUI(props: {
|
|
69
74
|
<CountrySelector
|
70
75
|
countryCode={countryCodeInfo}
|
71
76
|
setCountryCode={setCountryCodeInfo}
|
77
|
+
allowedCountryCodes={props.allowedSmsCountryCodes}
|
72
78
|
/>
|
73
79
|
)}
|
74
80
|
<Input
|
@@ -451,6 +451,9 @@ export const ConnectWalletSocialOptions = (
|
|
451
451
|
defaultSmsCountryCode={
|
452
452
|
wallet.getConfig()?.auth?.defaultSmsCountryCode
|
453
453
|
}
|
454
|
+
allowedSmsCountryCodes={
|
455
|
+
wallet.getConfig()?.auth?.allowedSmsCountryCodes
|
456
|
+
}
|
454
457
|
/>
|
455
458
|
) : (
|
456
459
|
<WalletTypeRowButton
|
@@ -18,7 +18,7 @@ const ZERO_BYTES32 =
|
|
18
18
|
* @returns A promise that resolves to an object containing the implementation address and bytecode.
|
19
19
|
* @example
|
20
20
|
* ```ts
|
21
|
-
* import { resolveImplementation } from "thirdweb";
|
21
|
+
* import { resolveImplementation } from "thirdweb/utils";
|
22
22
|
* const implementation = await resolveImplementation(contract);
|
23
23
|
* ```
|
24
24
|
* @contract
|
package/src/utils/ens/avatar.ts
CHANGED
@@ -74,7 +74,7 @@ async function isImageUri(options: ParseAvatarOptions): Promise<boolean> {
|
|
74
74
|
return false;
|
75
75
|
}
|
76
76
|
// fail in NodeJS, since the error is not cors but any other network issue
|
77
|
-
if (Object.hasOwn(globalThis, "Image")) {
|
77
|
+
if (!Object.hasOwn(globalThis, "Image")) {
|
78
78
|
return false;
|
79
79
|
}
|
80
80
|
// in case of cors, use image api to validate if given url is an actual image
|
package/src/version.ts
CHANGED
@@ -1 +1 @@
|
|
1
|
-
export const version = "5.100.2
|
1
|
+
export const version = "5.100.2";
|
@@ -19,6 +19,11 @@ export type EcosystemWalletCreationOptions = {
|
|
19
19
|
* The default country code to use for SMS authentication
|
20
20
|
*/
|
21
21
|
defaultSmsCountryCode?: SupportedSmsCountry;
|
22
|
+
|
23
|
+
/**
|
24
|
+
* The list of allowed country codes to display in the country selector
|
25
|
+
*/
|
26
|
+
allowedSmsCountryCodes?: SupportedSmsCountry[];
|
22
27
|
};
|
23
28
|
/**
|
24
29
|
* The partnerId of the ecosystem wallet to connect to
|
@@ -1,5 +1,6 @@
|
|
1
1
|
import type { SocialAuthOption } from "../../../../wallets/types.js";
|
2
2
|
import type { Account } from "../../../interfaces/wallet.js";
|
3
|
+
import type { ClientScopedStorage } from "../authentication/client-scoped-storage.js";
|
3
4
|
import type {
|
4
5
|
AuthArgsType,
|
5
6
|
AuthLoginReturnType,
|
@@ -38,4 +39,5 @@ export interface InAppConnector {
|
|
38
39
|
linkProfile(args: AuthArgsType): Promise<Profile[]>;
|
39
40
|
unlinkProfile(args: Profile): Promise<Profile[]>;
|
40
41
|
getProfiles(): Promise<Profile[]>;
|
42
|
+
storage: ClientScopedStorage;
|
41
43
|
}
|
@@ -55,9 +55,11 @@ export function createInAppWallet(args: {
|
|
55
55
|
let adminAccount: Account | undefined = undefined; // Admin account if smartAccountOptions were provided with connection
|
56
56
|
let chain: Chain | undefined = undefined;
|
57
57
|
let client: ThirdwebClient | undefined;
|
58
|
+
let authToken: string | null = null;
|
58
59
|
|
59
60
|
return {
|
60
61
|
id: walletId,
|
62
|
+
getAuthToken: () => authToken,
|
61
63
|
subscribe: emitter.subscribe,
|
62
64
|
getChain() {
|
63
65
|
if (!chain) {
|
@@ -114,6 +116,12 @@ export function createInAppWallet(args: {
|
|
114
116
|
account = connectedAccount;
|
115
117
|
adminAccount = _adminAccount;
|
116
118
|
chain = connectedChain;
|
119
|
+
try {
|
120
|
+
authToken = await connector.storage.getAuthCookie();
|
121
|
+
} catch (error) {
|
122
|
+
console.error("Failed to retrieve auth token:", error);
|
123
|
+
authToken = null;
|
124
|
+
}
|
117
125
|
trackConnect({
|
118
126
|
client: options.client,
|
119
127
|
ecosystem,
|
@@ -168,6 +176,12 @@ export function createInAppWallet(args: {
|
|
168
176
|
account = connectedAccount;
|
169
177
|
adminAccount = _adminAccount;
|
170
178
|
chain = connectedChain;
|
179
|
+
try {
|
180
|
+
authToken = await connector.storage.getAuthCookie();
|
181
|
+
} catch (error) {
|
182
|
+
console.error("Failed to retrieve auth token:", error);
|
183
|
+
authToken = null;
|
184
|
+
}
|
171
185
|
trackConnect({
|
172
186
|
client: options.client,
|
173
187
|
ecosystem,
|
@@ -194,6 +208,7 @@ export function createInAppWallet(args: {
|
|
194
208
|
account = undefined;
|
195
209
|
adminAccount = undefined;
|
196
210
|
chain = undefined;
|
211
|
+
authToken = null;
|
197
212
|
emitter.emit("disconnect", undefined);
|
198
213
|
},
|
199
214
|
switchChain: async (newChain) => {
|
@@ -83,6 +83,11 @@ export type InAppWalletCreationOptions =
|
|
83
83
|
* The default country code to use for SMS authentication
|
84
84
|
*/
|
85
85
|
defaultSmsCountryCode?: SupportedSmsCountry;
|
86
|
+
|
87
|
+
/**
|
88
|
+
* The list of allowed country codes to display in the country selector
|
89
|
+
*/
|
90
|
+
allowedSmsCountryCodes?: SupportedSmsCountry[];
|
86
91
|
};
|
87
92
|
/**
|
88
93
|
* Metadata to display in the Connect Modal
|
@@ -29,7 +29,7 @@ type NativeConnectorOptions = {
|
|
29
29
|
export class InAppNativeConnector implements InAppConnector {
|
30
30
|
private client: ThirdwebClient;
|
31
31
|
private ecosystem?: Ecosystem;
|
32
|
-
|
32
|
+
public storage: ClientScopedStorage;
|
33
33
|
private passkeyDomain?: string;
|
34
34
|
private wallet?: IWebWallet;
|
35
35
|
|
@@ -50,7 +50,7 @@ export class InAppWebConnector implements InAppConnector {
|
|
50
50
|
private client: ThirdwebClient;
|
51
51
|
private ecosystem?: Ecosystem;
|
52
52
|
private querier: InAppWalletIframeCommunicator<AuthQuerierTypes>;
|
53
|
-
|
53
|
+
public storage: ClientScopedStorage;
|
54
54
|
|
55
55
|
private wallet?: IWebWallet;
|
56
56
|
/**
|
@@ -151,8 +151,18 @@ export type Wallet<TWalletId extends WalletId = WalletId> = {
|
|
151
151
|
* This is useful for smart wallets to get the underlying personal account
|
152
152
|
*/
|
153
153
|
getAdminAccount?: () => Account | undefined;
|
154
|
-
};
|
155
154
|
|
155
|
+
/**
|
156
|
+
* Get the authentication token for the wallet.
|
157
|
+
*
|
158
|
+
* This method is not available for on all wallets. This method will be `undefined` if the wallet does not support it.
|
159
|
+
* @example
|
160
|
+
* ```ts
|
161
|
+
* const authToken = await wallet.getAuthToken();
|
162
|
+
* ```
|
163
|
+
*/
|
164
|
+
getAuthToken?: () => string | null;
|
165
|
+
};
|
156
166
|
/**
|
157
167
|
* Account interface
|
158
168
|
*
|