thirdweb 5.58.5 → 5.59.0-nightly-e2b3484764275560aa899f3f894b767faedaa9a1-20240925000331
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 +3 -3
- package/dist/cjs/exports/react.js.map +1 -1
- package/dist/cjs/exports/react.native.js +5 -3
- package/dist/cjs/exports/react.native.js.map +1 -1
- package/dist/cjs/exports/wallets/in-app.js +3 -1
- package/dist/cjs/exports/wallets/in-app.js.map +1 -1
- package/dist/cjs/exports/wallets/in-app.native.js +3 -1
- package/dist/cjs/exports/wallets/in-app.native.js.map +1 -1
- package/dist/cjs/exports/wallets.js +15 -10
- package/dist/cjs/exports/wallets.js.map +1 -1
- package/dist/cjs/exports/wallets.native.js +18 -7
- package/dist/cjs/exports/wallets.native.js.map +1 -1
- package/dist/cjs/react/core/hooks/wallets/{useAdminAccount.js → useAdminWallet.js} +1 -1
- package/dist/cjs/react/core/hooks/wallets/useAdminWallet.js.map +1 -0
- package/dist/cjs/react/{core/hooks/others → native/hooks/wallets}/useProfiles.js +15 -7
- package/dist/cjs/react/native/hooks/wallets/useProfiles.js.map +1 -0
- package/dist/cjs/react/native/ui/connect/ConnectedButton.js +1 -1
- package/dist/cjs/react/native/ui/connect/ConnectedButton.js.map +1 -1
- package/dist/cjs/react/native/ui/connect/ConnectedModal.js +1 -1
- package/dist/cjs/react/native/ui/connect/ConnectedModal.js.map +1 -1
- package/dist/cjs/react/native/ui/connect/TokenListScreen.js +1 -1
- package/dist/cjs/react/native/ui/connect/TokenListScreen.js.map +1 -1
- package/dist/cjs/react/web/hooks/wallets/useProfiles.js +45 -0
- package/dist/cjs/react/web/hooks/wallets/useProfiles.js.map +1 -0
- package/dist/cjs/react/web/ui/ConnectWallet/Details.js +4 -4
- package/dist/cjs/react/web/ui/ConnectWallet/Details.js.map +1 -1
- package/dist/cjs/react/web/ui/ConnectWallet/Modal/TOS.js +2 -2
- package/dist/cjs/react/web/ui/ConnectWallet/Modal/TOS.js.map +1 -1
- package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/BuyScreen.js +2 -2
- package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/BuyScreen.js.map +1 -1
- package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/TransactionModeScreen.js +1 -1
- package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/TransactionModeScreen.js.map +1 -1
- package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/fiat/FiatStatusScreen.js +1 -1
- 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/FiatSteps.js +6 -6
- package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/fiat/FiatSteps.js.map +1 -1
- package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/fiat/FiatTxDetailsTable.js +1 -1
- package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/fiat/FiatTxDetailsTable.js.map +1 -1
- package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/pay-transactions/BuyTxHistoryButton.js +2 -2
- package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/pay-transactions/BuyTxHistoryButton.js.map +1 -1
- package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/swap/ConfirmationScreen.js +1 -1
- 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 +3 -3
- 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/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/LinkProfileScreen.js +2 -2
- package/dist/cjs/react/web/ui/ConnectWallet/screens/LinkProfileScreen.js.map +1 -1
- package/dist/cjs/react/web/ui/ConnectWallet/screens/LinkedProfilesScreen.js +4 -2
- package/dist/cjs/react/web/ui/ConnectWallet/screens/LinkedProfilesScreen.js.map +1 -1
- package/dist/cjs/react/web/ui/ConnectWallet/screens/ManageWalletScreen.js +2 -2
- package/dist/cjs/react/web/ui/ConnectWallet/screens/ManageWalletScreen.js.map +1 -1
- package/dist/cjs/react/web/ui/ConnectWallet/screens/SignatureScreen.js +2 -2
- package/dist/cjs/react/web/ui/ConnectWallet/screens/SignatureScreen.js.map +1 -1
- package/dist/cjs/react/web/wallets/in-app/WalletAuth.js +5 -4
- package/dist/cjs/react/web/wallets/in-app/WalletAuth.js.map +1 -1
- package/dist/cjs/react/web/wallets/shared/ConnectWalletSocialOptions.js +10 -10
- package/dist/cjs/react/web/wallets/shared/ConnectWalletSocialOptions.js.map +1 -1
- package/dist/cjs/react/web/wallets/shared/OTPLoginUI.js +4 -3
- package/dist/cjs/react/web/wallets/shared/OTPLoginUI.js.map +1 -1
- package/dist/cjs/react/web/wallets/shared/PassKeyLogin.js +9 -7
- package/dist/cjs/react/web/wallets/shared/PassKeyLogin.js.map +1 -1
- package/dist/cjs/react/web/wallets/shared/SocialLogin.js +3 -2
- package/dist/cjs/react/web/wallets/shared/SocialLogin.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/authentication/linkAccount.js +7 -7
- package/dist/cjs/wallets/in-app/core/authentication/linkAccount.js.map +1 -1
- package/dist/cjs/wallets/in-app/core/authentication/types.js.map +1 -1
- package/dist/cjs/wallets/in-app/core/wallet/ecosystem-core.js +0 -20
- package/dist/cjs/wallets/in-app/core/wallet/ecosystem-core.js.map +1 -1
- package/dist/cjs/wallets/in-app/core/wallet/in-app-core.js +0 -39
- package/dist/cjs/wallets/in-app/core/wallet/in-app-core.js.map +1 -1
- package/dist/cjs/wallets/in-app/native/auth/index.js +57 -2
- package/dist/cjs/wallets/in-app/native/auth/index.js.map +1 -1
- package/dist/cjs/wallets/in-app/native/auth/native-auth.js.map +1 -1
- package/dist/cjs/wallets/in-app/native/native-connector.js +61 -19
- package/dist/cjs/wallets/in-app/native/native-connector.js.map +1 -1
- package/dist/cjs/wallets/in-app/web/lib/actions/sign-message.enclave.js +1 -1
- package/dist/cjs/wallets/in-app/web/lib/actions/sign-message.enclave.js.map +1 -1
- package/dist/cjs/wallets/in-app/web/lib/actions/sign-transaction.enclave.js +1 -1
- package/dist/cjs/wallets/in-app/web/lib/actions/sign-transaction.enclave.js.map +1 -1
- package/dist/cjs/wallets/in-app/web/lib/actions/sign-typed-data.enclave.js +1 -1
- package/dist/cjs/wallets/in-app/web/lib/actions/sign-typed-data.enclave.js.map +1 -1
- package/dist/cjs/wallets/in-app/web/lib/auth/abstract-login.js.map +1 -1
- package/dist/cjs/wallets/in-app/web/lib/auth/iframe-auth.js +2 -8
- package/dist/cjs/wallets/in-app/web/lib/auth/iframe-auth.js.map +1 -1
- package/dist/cjs/wallets/in-app/web/lib/auth/index.js +80 -4
- package/dist/cjs/wallets/in-app/web/lib/auth/index.js.map +1 -1
- package/dist/cjs/wallets/in-app/web/lib/enclave-wallet.js +2 -8
- package/dist/cjs/wallets/in-app/web/lib/enclave-wallet.js.map +1 -1
- package/dist/cjs/wallets/in-app/web/lib/get-auth-token.js +1 -0
- package/dist/cjs/wallets/in-app/web/lib/get-auth-token.js.map +1 -1
- package/dist/cjs/wallets/in-app/web/lib/iframe-wallet.js +2 -8
- package/dist/cjs/wallets/in-app/web/lib/iframe-wallet.js.map +1 -1
- package/dist/cjs/wallets/in-app/web/lib/web-connector.js +31 -0
- package/dist/cjs/wallets/in-app/web/lib/web-connector.js.map +1 -1
- package/dist/esm/exports/react.js +2 -2
- 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/exports/wallets/in-app.js +1 -1
- package/dist/esm/exports/wallets/in-app.js.map +1 -1
- package/dist/esm/exports/wallets/in-app.native.js +1 -1
- package/dist/esm/exports/wallets/in-app.native.js.map +1 -1
- package/dist/esm/exports/wallets.js +1 -1
- package/dist/esm/exports/wallets.js.map +1 -1
- package/dist/esm/exports/wallets.native.js +4 -0
- package/dist/esm/exports/wallets.native.js.map +1 -1
- package/dist/esm/react/core/hooks/wallets/{useAdminAccount.js → useAdminWallet.js} +1 -1
- package/dist/esm/react/core/hooks/wallets/useAdminWallet.js.map +1 -0
- package/dist/esm/react/{core/hooks/others → native/hooks/wallets}/useProfiles.js +14 -6
- package/dist/esm/react/native/hooks/wallets/useProfiles.js.map +1 -0
- package/dist/esm/react/native/ui/connect/ConnectedButton.js +1 -1
- package/dist/esm/react/native/ui/connect/ConnectedButton.js.map +1 -1
- package/dist/esm/react/native/ui/connect/ConnectedModal.js +1 -1
- package/dist/esm/react/native/ui/connect/ConnectedModal.js.map +1 -1
- package/dist/esm/react/native/ui/connect/TokenListScreen.js +1 -1
- package/dist/esm/react/native/ui/connect/TokenListScreen.js.map +1 -1
- package/dist/esm/react/web/hooks/wallets/useProfiles.js +42 -0
- package/dist/esm/react/web/hooks/wallets/useProfiles.js.map +1 -0
- package/dist/esm/react/web/ui/ConnectWallet/Details.js +3 -3
- package/dist/esm/react/web/ui/ConnectWallet/Details.js.map +1 -1
- package/dist/esm/react/web/ui/ConnectWallet/Modal/TOS.js +2 -2
- package/dist/esm/react/web/ui/ConnectWallet/Modal/TOS.js.map +1 -1
- package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/BuyScreen.js +2 -2
- package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/BuyScreen.js.map +1 -1
- package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/TransactionModeScreen.js +1 -1
- package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/TransactionModeScreen.js.map +1 -1
- package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/fiat/FiatStatusScreen.js +1 -1
- 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/FiatSteps.js +6 -6
- package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/fiat/FiatSteps.js.map +1 -1
- package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/fiat/FiatTxDetailsTable.js +1 -1
- package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/fiat/FiatTxDetailsTable.js.map +1 -1
- package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/pay-transactions/BuyTxHistoryButton.js +2 -2
- package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/pay-transactions/BuyTxHistoryButton.js.map +1 -1
- package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/swap/ConfirmationScreen.js +1 -1
- 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 +3 -3
- 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/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/LinkProfileScreen.js +1 -1
- package/dist/esm/react/web/ui/ConnectWallet/screens/LinkProfileScreen.js.map +1 -1
- package/dist/esm/react/web/ui/ConnectWallet/screens/LinkedProfilesScreen.js +4 -2
- package/dist/esm/react/web/ui/ConnectWallet/screens/LinkedProfilesScreen.js.map +1 -1
- package/dist/esm/react/web/ui/ConnectWallet/screens/ManageWalletScreen.js +1 -1
- package/dist/esm/react/web/ui/ConnectWallet/screens/ManageWalletScreen.js.map +1 -1
- package/dist/esm/react/web/ui/ConnectWallet/screens/SignatureScreen.js +1 -1
- package/dist/esm/react/web/ui/ConnectWallet/screens/SignatureScreen.js.map +1 -1
- package/dist/esm/react/web/wallets/in-app/WalletAuth.js +3 -2
- package/dist/esm/react/web/wallets/in-app/WalletAuth.js.map +1 -1
- package/dist/esm/react/web/wallets/shared/ConnectWalletSocialOptions.js +2 -2
- package/dist/esm/react/web/wallets/shared/ConnectWalletSocialOptions.js.map +1 -1
- package/dist/esm/react/web/wallets/shared/OTPLoginUI.js +5 -4
- package/dist/esm/react/web/wallets/shared/OTPLoginUI.js.map +1 -1
- package/dist/esm/react/web/wallets/shared/PassKeyLogin.js +5 -3
- package/dist/esm/react/web/wallets/shared/PassKeyLogin.js.map +1 -1
- package/dist/esm/react/web/wallets/shared/SocialLogin.js +3 -2
- package/dist/esm/react/web/wallets/shared/SocialLogin.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/authentication/linkAccount.js +7 -7
- package/dist/esm/wallets/in-app/core/authentication/linkAccount.js.map +1 -1
- package/dist/esm/wallets/in-app/core/authentication/types.js.map +1 -1
- package/dist/esm/wallets/in-app/core/wallet/ecosystem-core.js +0 -20
- package/dist/esm/wallets/in-app/core/wallet/ecosystem-core.js.map +1 -1
- package/dist/esm/wallets/in-app/core/wallet/in-app-core.js +0 -39
- package/dist/esm/wallets/in-app/core/wallet/in-app-core.js.map +1 -1
- package/dist/esm/wallets/in-app/native/auth/index.js +55 -2
- package/dist/esm/wallets/in-app/native/auth/index.js.map +1 -1
- package/dist/esm/wallets/in-app/native/auth/native-auth.js.map +1 -1
- package/dist/esm/wallets/in-app/native/native-connector.js +61 -19
- package/dist/esm/wallets/in-app/native/native-connector.js.map +1 -1
- package/dist/esm/wallets/in-app/web/lib/actions/sign-message.enclave.js +1 -1
- package/dist/esm/wallets/in-app/web/lib/actions/sign-message.enclave.js.map +1 -1
- package/dist/esm/wallets/in-app/web/lib/actions/sign-transaction.enclave.js +1 -1
- package/dist/esm/wallets/in-app/web/lib/actions/sign-transaction.enclave.js.map +1 -1
- package/dist/esm/wallets/in-app/web/lib/actions/sign-typed-data.enclave.js +1 -1
- package/dist/esm/wallets/in-app/web/lib/actions/sign-typed-data.enclave.js.map +1 -1
- package/dist/esm/wallets/in-app/web/lib/auth/abstract-login.js.map +1 -1
- package/dist/esm/wallets/in-app/web/lib/auth/iframe-auth.js +2 -8
- package/dist/esm/wallets/in-app/web/lib/auth/iframe-auth.js.map +1 -1
- package/dist/esm/wallets/in-app/web/lib/auth/index.js +77 -4
- package/dist/esm/wallets/in-app/web/lib/auth/index.js.map +1 -1
- package/dist/esm/wallets/in-app/web/lib/enclave-wallet.js +2 -8
- package/dist/esm/wallets/in-app/web/lib/enclave-wallet.js.map +1 -1
- package/dist/esm/wallets/in-app/web/lib/get-auth-token.js +1 -0
- package/dist/esm/wallets/in-app/web/lib/get-auth-token.js.map +1 -1
- package/dist/esm/wallets/in-app/web/lib/iframe-wallet.js +2 -8
- package/dist/esm/wallets/in-app/web/lib/iframe-wallet.js.map +1 -1
- package/dist/esm/wallets/in-app/web/lib/web-connector.js +31 -0
- package/dist/esm/wallets/in-app/web/lib/web-connector.js.map +1 -1
- package/dist/types/exports/react.d.ts +2 -2
- 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/exports/wallets/in-app.d.ts +1 -1
- package/dist/types/exports/wallets/in-app.d.ts.map +1 -1
- package/dist/types/exports/wallets/in-app.native.d.ts +1 -1
- package/dist/types/exports/wallets/in-app.native.d.ts.map +1 -1
- package/dist/types/exports/wallets.d.ts +1 -1
- package/dist/types/exports/wallets.d.ts.map +1 -1
- package/dist/types/exports/wallets.native.d.ts +2 -0
- package/dist/types/exports/wallets.native.d.ts.map +1 -1
- package/dist/types/react/core/hooks/wallets/useActiveAccount.d.ts +1 -1
- package/dist/types/react/core/hooks/wallets/useActiveAccount.d.ts.map +1 -1
- package/dist/types/react/core/hooks/wallets/useActiveWallet.d.ts +1 -1
- package/dist/types/react/core/hooks/wallets/useActiveWallet.d.ts.map +1 -1
- package/dist/types/react/core/hooks/wallets/useActiveWalletConnectionStatus.d.ts +1 -1
- package/dist/types/react/core/hooks/wallets/useActiveWalletConnectionStatus.d.ts.map +1 -1
- package/dist/types/react/core/hooks/wallets/useAddConnectedWallet.d.ts +1 -1
- package/dist/types/react/core/hooks/wallets/useAddConnectedWallet.d.ts.map +1 -1
- package/dist/types/react/core/hooks/wallets/{useAdminAccount.d.ts → useAdminWallet.d.ts} +2 -2
- package/dist/types/react/core/hooks/wallets/useAdminWallet.d.ts.map +1 -0
- package/dist/types/react/core/hooks/wallets/useConnectedWallets.d.ts +1 -1
- package/dist/types/react/core/hooks/wallets/useConnectedWallets.d.ts.map +1 -1
- package/dist/types/react/core/hooks/wallets/useDisconnect.d.ts +1 -1
- package/dist/types/react/core/hooks/wallets/useSetActiveWallet.d.ts +1 -1
- package/dist/types/react/core/hooks/wallets/useSetActiveWallet.d.ts.map +1 -1
- package/dist/types/react/core/hooks/wallets/useSetActiveWalletConnectionStatus.d.ts +1 -1
- package/dist/types/react/core/hooks/wallets/useSetActiveWalletConnectionStatus.d.ts.map +1 -1
- package/dist/types/react/core/providers/connection-manager.d.ts +27 -27
- package/dist/types/react/{core/hooks/others → native/hooks/wallets}/useProfiles.d.ts +8 -3
- package/dist/types/react/native/hooks/wallets/useProfiles.d.ts.map +1 -0
- package/dist/types/react/web/hooks/wallets/useProfiles.d.ts +28 -0
- package/dist/types/react/web/hooks/wallets/useProfiles.d.ts.map +1 -0
- package/dist/types/react/web/ui/ConnectWallet/Modal/TOS.d.ts.map +1 -1
- 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/swap/Fees.d.ts.map +1 -1
- package/dist/types/react/web/ui/ConnectWallet/screens/LinkedProfilesScreen.d.ts.map +1 -1
- package/dist/types/react/web/ui/MediaRenderer/ModelViewer.d.ts +1 -1
- package/dist/types/react/web/wallets/in-app/WalletAuth.d.ts.map +1 -1
- package/dist/types/react/web/wallets/shared/OTPLoginUI.d.ts.map +1 -1
- package/dist/types/react/web/wallets/shared/PassKeyLogin.d.ts +1 -1
- package/dist/types/react/web/wallets/shared/PassKeyLogin.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/oauthSignIn.d.ts +1 -2
- package/dist/types/react/web/wallets/shared/oauthSignIn.d.ts.map +1 -1
- package/dist/types/utils/fetch.d.ts +1 -1
- package/dist/types/utils/fetch.d.ts.map +1 -1
- package/dist/types/version.d.ts +1 -1
- package/dist/types/version.d.ts.map +1 -1
- package/dist/types/wallets/in-app/core/authentication/getLoginPath.d.ts +1 -1
- package/dist/types/wallets/in-app/core/authentication/guest.d.ts +1 -1
- package/dist/types/wallets/in-app/core/authentication/linkAccount.d.ts +6 -3
- package/dist/types/wallets/in-app/core/authentication/linkAccount.d.ts.map +1 -1
- package/dist/types/wallets/in-app/core/authentication/passkeys.d.ts +1 -1
- package/dist/types/wallets/in-app/core/authentication/siwe.d.ts +1 -1
- package/dist/types/wallets/in-app/core/authentication/types.d.ts +4 -3
- package/dist/types/wallets/in-app/core/authentication/types.d.ts.map +1 -1
- package/dist/types/wallets/in-app/core/interfaces/connector.d.ts +3 -1
- package/dist/types/wallets/in-app/core/interfaces/connector.d.ts.map +1 -1
- package/dist/types/wallets/in-app/core/wallet/ecosystem-core.d.ts.map +1 -1
- package/dist/types/wallets/in-app/core/wallet/in-app-core.d.ts +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 +5 -0
- package/dist/types/wallets/in-app/core/wallet/types.d.ts.map +1 -1
- package/dist/types/wallets/in-app/native/auth/index.d.ts +48 -2
- package/dist/types/wallets/in-app/native/auth/index.d.ts.map +1 -1
- package/dist/types/wallets/in-app/native/auth/native-auth.d.ts +1 -1
- package/dist/types/wallets/in-app/native/auth/native-auth.d.ts.map +1 -1
- package/dist/types/wallets/in-app/native/native-connector.d.ts +8 -2
- package/dist/types/wallets/in-app/native/native-connector.d.ts.map +1 -1
- package/dist/types/wallets/in-app/web/lib/actions/generate-wallet.enclave.d.ts +1 -1
- package/dist/types/wallets/in-app/web/lib/actions/generate-wallet.enclave.d.ts.map +1 -1
- package/dist/types/wallets/in-app/web/lib/actions/get-enclave-user-status.d.ts +1 -1
- package/dist/types/wallets/in-app/web/lib/actions/get-enclave-user-status.d.ts.map +1 -1
- package/dist/types/wallets/in-app/web/lib/actions/sign-message.enclave.d.ts +1 -1
- package/dist/types/wallets/in-app/web/lib/actions/sign-message.enclave.d.ts.map +1 -1
- package/dist/types/wallets/in-app/web/lib/actions/sign-transaction.enclave.d.ts +1 -1
- package/dist/types/wallets/in-app/web/lib/actions/sign-transaction.enclave.d.ts.map +1 -1
- package/dist/types/wallets/in-app/web/lib/actions/sign-typed-data.enclave.d.ts +1 -1
- package/dist/types/wallets/in-app/web/lib/actions/sign-typed-data.enclave.d.ts.map +1 -1
- package/dist/types/wallets/in-app/web/lib/auth/abstract-login.d.ts +2 -1
- package/dist/types/wallets/in-app/web/lib/auth/abstract-login.d.ts.map +1 -1
- package/dist/types/wallets/in-app/web/lib/auth/iframe-auth.d.ts +5 -3
- package/dist/types/wallets/in-app/web/lib/auth/iframe-auth.d.ts.map +1 -1
- package/dist/types/wallets/in-app/web/lib/auth/index.d.ts +68 -8
- 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 +1 -1
- package/dist/types/wallets/in-app/web/lib/auth/oauth.d.ts.map +1 -1
- package/dist/types/wallets/in-app/web/lib/auth/otp.d.ts +1 -1
- package/dist/types/wallets/in-app/web/lib/auth/otp.d.ts.map +1 -1
- package/dist/types/wallets/in-app/web/lib/enclave-wallet.d.ts +8 -7
- package/dist/types/wallets/in-app/web/lib/enclave-wallet.d.ts.map +1 -1
- package/dist/types/wallets/in-app/web/lib/get-auth-token.d.ts +1 -1
- package/dist/types/wallets/in-app/web/lib/get-auth-token.d.ts.map +1 -1
- package/dist/types/wallets/in-app/web/lib/iframe-wallet.d.ts +5 -3
- package/dist/types/wallets/in-app/web/lib/iframe-wallet.d.ts.map +1 -1
- package/dist/types/wallets/in-app/web/lib/web-connector.d.ts +9 -8
- package/dist/types/wallets/in-app/web/lib/web-connector.d.ts.map +1 -1
- package/dist/types/wallets/in-app/web/types.d.ts +1 -5
- package/dist/types/wallets/in-app/web/types.d.ts.map +1 -1
- package/dist/types/wallets/in-app/web/utils/iFrameCommunication/InAppWalletIframeCommunicator.d.ts +1 -1
- package/dist/types/wallets/in-app/web/utils/iFrameCommunication/InAppWalletIframeCommunicator.d.ts.map +1 -1
- package/package.json +4 -4
- package/src/exports/react.native.ts +2 -1
- package/src/exports/react.ts +2 -2
- package/src/exports/wallets/in-app.native.ts +2 -0
- package/src/exports/wallets/in-app.ts +2 -0
- package/src/exports/wallets.native.ts +12 -0
- package/src/exports/wallets.ts +6 -1
- package/src/react/{core/hooks/others → native/hooks/wallets}/useProfiles.ts +19 -8
- package/src/react/native/ui/connect/ConnectedButton.tsx +1 -1
- package/src/react/native/ui/connect/ConnectedModal.tsx +1 -1
- package/src/react/native/ui/connect/TokenListScreen.tsx +1 -1
- package/src/react/web/hooks/wallets/useProfiles.ts +48 -0
- package/src/react/web/ui/ConnectWallet/Details.tsx +4 -4
- package/src/react/web/ui/ConnectWallet/Modal/TOS.tsx +3 -2
- package/src/react/web/ui/ConnectWallet/screens/Buy/BuyScreen.tsx +4 -1
- package/src/react/web/ui/ConnectWallet/screens/Buy/TransactionModeScreen.tsx +1 -1
- package/src/react/web/ui/ConnectWallet/screens/Buy/fiat/FiatStatusScreen.tsx +2 -3
- package/src/react/web/ui/ConnectWallet/screens/Buy/fiat/FiatSteps.tsx +10 -10
- package/src/react/web/ui/ConnectWallet/screens/Buy/fiat/FiatTxDetailsTable.tsx +1 -1
- package/src/react/web/ui/ConnectWallet/screens/Buy/pay-transactions/BuyTxHistoryButton.tsx +2 -2
- package/src/react/web/ui/ConnectWallet/screens/Buy/swap/ConfirmationScreen.tsx +1 -1
- package/src/react/web/ui/ConnectWallet/screens/Buy/swap/Fees.tsx +3 -4
- package/src/react/web/ui/ConnectWallet/screens/Buy/swap/SwapStatusScreen.tsx +1 -1
- package/src/react/web/ui/ConnectWallet/screens/LinkProfileScreen.tsx +1 -1
- package/src/react/web/ui/ConnectWallet/screens/LinkedProfilesScreen.tsx +4 -2
- package/src/react/web/ui/ConnectWallet/screens/ManageWalletScreen.tsx +1 -1
- package/src/react/web/ui/ConnectWallet/screens/SignatureScreen.tsx +1 -1
- package/src/react/web/ui/prebuilt/NFT/NFT.test.tsx +2 -2
- package/src/react/web/wallets/in-app/WalletAuth.tsx +3 -2
- package/src/react/web/wallets/shared/ConnectWalletSocialOptions.tsx +2 -2
- package/src/react/web/wallets/shared/OTPLoginUI.tsx +8 -4
- package/src/react/web/wallets/shared/PassKeyLogin.tsx +6 -3
- package/src/react/web/wallets/shared/SocialLogin.tsx +3 -2
- package/src/react/web/wallets/shared/oauthSignIn.ts +1 -1
- package/src/utils/fetch.test.ts +1 -1
- package/src/utils/fetch.ts +1 -1
- package/src/version.ts +1 -1
- package/src/wallets/in-app/core/authentication/getLoginPath.ts +1 -1
- package/src/wallets/in-app/core/authentication/guest.ts +1 -1
- package/src/wallets/in-app/core/authentication/linkAccount.ts +15 -11
- package/src/wallets/in-app/core/authentication/passkeys.ts +1 -1
- package/src/wallets/in-app/core/authentication/siwe.ts +1 -1
- package/src/wallets/in-app/core/authentication/types.ts +10 -8
- package/src/wallets/in-app/core/interfaces/connector.ts +4 -0
- package/src/wallets/in-app/core/wallet/ecosystem-core.ts +1 -40
- package/src/wallets/in-app/core/wallet/in-app-core.ts +1 -58
- package/src/wallets/in-app/core/wallet/types.ts +6 -0
- package/src/wallets/in-app/native/auth/index.ts +62 -6
- package/src/wallets/in-app/native/auth/native-auth.ts +1 -1
- package/src/wallets/in-app/native/native-connector.ts +53 -27
- package/src/wallets/in-app/web/lib/actions/generate-wallet.enclave.ts +1 -1
- package/src/wallets/in-app/web/lib/actions/get-enclave-user-status.ts +1 -1
- package/src/wallets/in-app/web/lib/actions/sign-message.enclave.ts +2 -2
- package/src/wallets/in-app/web/lib/actions/sign-transaction.enclave.ts +2 -2
- package/src/wallets/in-app/web/lib/actions/sign-typed-data.enclave.ts +2 -2
- package/src/wallets/in-app/web/lib/auth/abstract-login.ts +2 -1
- package/src/wallets/in-app/web/lib/auth/iframe-auth.ts +6 -8
- package/src/wallets/in-app/web/lib/auth/index.ts +89 -19
- package/src/wallets/in-app/web/lib/auth/oauth.ts +1 -1
- package/src/wallets/in-app/web/lib/auth/otp.ts +1 -1
- package/src/wallets/in-app/web/lib/enclave-wallet.ts +9 -13
- package/src/wallets/in-app/web/lib/get-auth-token.ts +2 -1
- package/src/wallets/in-app/web/lib/iframe-wallet.ts +5 -9
- package/src/wallets/in-app/web/lib/web-connector.ts +37 -4
- package/src/wallets/in-app/web/types.ts +1 -6
- package/src/wallets/in-app/web/utils/iFrameCommunication/InAppWalletIframeCommunicator.ts +1 -1
- package/dist/cjs/react/core/hooks/others/useProfiles.js.map +0 -1
- package/dist/cjs/react/core/hooks/wallets/useAdminAccount.js.map +0 -1
- package/dist/cjs/wallets/in-app/core/wallet/profiles.js +0 -61
- package/dist/cjs/wallets/in-app/core/wallet/profiles.js.map +0 -1
- package/dist/esm/react/core/hooks/others/useProfiles.js.map +0 -1
- package/dist/esm/react/core/hooks/wallets/useAdminAccount.js.map +0 -1
- package/dist/esm/wallets/in-app/core/wallet/profiles.js +0 -57
- package/dist/esm/wallets/in-app/core/wallet/profiles.js.map +0 -1
- package/dist/types/react/core/hooks/others/useProfiles.d.ts.map +0 -1
- package/dist/types/react/core/hooks/wallets/useAdminAccount.d.ts.map +0 -1
- package/dist/types/wallets/in-app/core/wallet/profiles.d.ts +0 -49
- package/dist/types/wallets/in-app/core/wallet/profiles.d.ts.map +0 -1
- package/src/wallets/in-app/core/wallet/profiles.ts +0 -76
- /package/src/react/core/hooks/wallets/{useAdminAccount.ts → useAdminWallet.ts} +0 -0
@@ -1,12 +1,12 @@
|
|
1
1
|
import type { ThirdwebClient } from "../../../../client/client.js";
|
2
2
|
import {
|
3
3
|
type AuthArgsType,
|
4
|
-
type AuthLoginReturnType,
|
5
4
|
type GetAuthenticatedUserParams,
|
6
5
|
type PreAuthArgsType,
|
7
6
|
UserWalletStatus,
|
8
7
|
} from "../../core/authentication/types.js";
|
9
8
|
import { getOrCreateInAppWalletConnector } from "../../core/wallet/in-app-core.js";
|
9
|
+
import type { Ecosystem } from "../../core/wallet/types.js";
|
10
10
|
|
11
11
|
// ---- KEEP IN SYNC WITH /wallets/in-app/web/lib/auth/index.ts ---- //
|
12
12
|
// duplication needed for separate exports between web and native
|
@@ -14,11 +14,15 @@ import { getOrCreateInAppWalletConnector } from "../../core/wallet/in-app-core.j
|
|
14
14
|
/**
|
15
15
|
* @internal
|
16
16
|
*/
|
17
|
-
async function getInAppWalletConnector(
|
17
|
+
async function getInAppWalletConnector(
|
18
|
+
client: ThirdwebClient,
|
19
|
+
ecosystem?: Ecosystem,
|
20
|
+
) {
|
18
21
|
return getOrCreateInAppWalletConnector(client, async (client) => {
|
19
22
|
const { InAppNativeConnector } = await import("../native-connector.js");
|
20
23
|
return new InAppNativeConnector({
|
21
24
|
client: client,
|
25
|
+
ecosystem: ecosystem,
|
22
26
|
});
|
23
27
|
});
|
24
28
|
}
|
@@ -131,9 +135,61 @@ export async function preAuthenticate(args: PreAuthArgsType) {
|
|
131
135
|
* ```
|
132
136
|
* @wallet
|
133
137
|
*/
|
134
|
-
export async function authenticate(
|
135
|
-
args: AuthArgsType,
|
136
|
-
): Promise<AuthLoginReturnType> {
|
138
|
+
export async function authenticate(args: AuthArgsType) {
|
137
139
|
const connector = await getInAppWalletConnector(args.client);
|
138
|
-
return connector.
|
140
|
+
return connector.authenticate(args);
|
141
|
+
}
|
142
|
+
|
143
|
+
/**
|
144
|
+
* Connects a new profile (authentication method) to the current user.
|
145
|
+
* The connected profile can be any valid in-app wallet including email, phone, passkey, etc.
|
146
|
+
* The inputs mirror those used when authenticating normally.
|
147
|
+
*
|
148
|
+
* **When a profile is linked to the account, that profile can then be used to sign into the account.**
|
149
|
+
*
|
150
|
+
* This method is only available for in-app wallets.
|
151
|
+
*
|
152
|
+
* @param wallet - The wallet to link an additional profile to.
|
153
|
+
* @param auth - The authentications options to add the new profile.
|
154
|
+
* @returns A promise that resolves to the currently linked profiles when the connection is successful.
|
155
|
+
* @throws If the connection fails, if the profile is already linked to the account, or if the profile is already associated with another account.
|
156
|
+
*
|
157
|
+
* @example
|
158
|
+
* ```ts
|
159
|
+
* const wallet = inAppWallet();
|
160
|
+
*
|
161
|
+
* await wallet.connect({ client, strategy: "google" });
|
162
|
+
* const profiles = await linkProfile({ client, strategy: "discord" });
|
163
|
+
* ```
|
164
|
+
* @wallet
|
165
|
+
*/
|
166
|
+
export async function linkProfile(args: AuthArgsType) {
|
167
|
+
const connector = await getInAppWalletConnector(args.client, args.ecosystem);
|
168
|
+
return await connector.linkProfile(args);
|
169
|
+
}
|
170
|
+
|
171
|
+
/**
|
172
|
+
* Gets the linked profiles for the connected in-app or ecosystem wallet.
|
173
|
+
*
|
174
|
+
* @returns An array of accounts user profiles linked to the connected wallet.
|
175
|
+
*
|
176
|
+
* @example
|
177
|
+
* ```ts
|
178
|
+
* import { inAppWallet } from "thirdweb/wallets";
|
179
|
+
*
|
180
|
+
* const wallet = inAppWallet();
|
181
|
+
* wallet.connect({ strategy: "google" });
|
182
|
+
*
|
183
|
+
* const profiles = await getProfiles({
|
184
|
+
* client,
|
185
|
+
* });
|
186
|
+
*
|
187
|
+
* console.log(profiles[0].type);
|
188
|
+
* console.log(profiles[0].details.email);
|
189
|
+
* ```
|
190
|
+
* @wallet
|
191
|
+
*/
|
192
|
+
export async function getProfiles(args: GetAuthenticatedUserParams) {
|
193
|
+
const connector = await getInAppWalletConnector(args.client, args.ecosystem);
|
194
|
+
return connector.getProfiles();
|
139
195
|
}
|
@@ -11,8 +11,8 @@ import type {
|
|
11
11
|
MultiStepAuthArgsType,
|
12
12
|
OAuthRedirectObject,
|
13
13
|
} from "../../core/authentication/types.js";
|
14
|
+
import type { Ecosystem } from "../../core/wallet/types.js";
|
14
15
|
import { verifyOtp } from "../../web/lib/auth/otp.js";
|
15
|
-
import type { Ecosystem } from "../../web/types.js";
|
16
16
|
import {
|
17
17
|
deleteAccount,
|
18
18
|
getSessionHeaders,
|
@@ -3,7 +3,12 @@ import type { ThirdwebClient } from "../../../client/client.js";
|
|
3
3
|
import { stringify } from "../../../utils/json.js";
|
4
4
|
import { nativeLocalStorage } from "../../../utils/storage/nativeStorage.js";
|
5
5
|
import type { Account, Wallet } from "../../interfaces/wallet.js";
|
6
|
+
import { ClientScopedStorage } from "../core/authentication/client-scoped-storage.js";
|
6
7
|
import { guestAuthenticate } from "../core/authentication/guest.js";
|
8
|
+
import {
|
9
|
+
getLinkedProfilesInternal,
|
10
|
+
linkAccount,
|
11
|
+
} from "../core/authentication/linkAccount.js";
|
7
12
|
import {
|
8
13
|
loginWithPasskey,
|
9
14
|
registerPasskey,
|
@@ -21,8 +26,8 @@ import {
|
|
21
26
|
UserWalletStatus,
|
22
27
|
} from "../core/authentication/types.js";
|
23
28
|
import type { InAppConnector } from "../core/interfaces/connector.js";
|
29
|
+
import type { Ecosystem } from "../core/wallet/types.js";
|
24
30
|
import { sendOtp, verifyOtp } from "../web/lib/auth/otp.js";
|
25
|
-
import type { Ecosystem } from "../web/types.js";
|
26
31
|
import {
|
27
32
|
authEndpoint,
|
28
33
|
authenticate,
|
@@ -41,21 +46,31 @@ import { getExistingUserAccount } from "./helpers/wallet/retrieval.js";
|
|
41
46
|
|
42
47
|
type NativeConnectorOptions = {
|
43
48
|
client: ThirdwebClient;
|
44
|
-
|
49
|
+
ecosystem?: Ecosystem;
|
45
50
|
passkeyDomain?: string;
|
46
51
|
};
|
47
52
|
|
48
53
|
export class InAppNativeConnector implements InAppConnector {
|
49
|
-
private
|
54
|
+
private client: ThirdwebClient;
|
55
|
+
private ecosystem?: Ecosystem;
|
56
|
+
private passkeyDomain?: string;
|
57
|
+
private localStorage: ClientScopedStorage;
|
50
58
|
|
51
59
|
constructor(options: NativeConnectorOptions) {
|
52
|
-
this.
|
60
|
+
this.client = options.client;
|
61
|
+
this.ecosystem = options.ecosystem;
|
62
|
+
this.passkeyDomain = options.passkeyDomain;
|
63
|
+
this.localStorage = new ClientScopedStorage({
|
64
|
+
storage: nativeLocalStorage,
|
65
|
+
clientId: this.client.clientId,
|
66
|
+
ecosystemId: this.ecosystem?.id,
|
67
|
+
});
|
53
68
|
}
|
54
69
|
|
55
70
|
async getUser(): Promise<GetUser> {
|
56
|
-
const localData = await getWalletUserDetails(this.
|
71
|
+
const localData = await getWalletUserDetails(this.client.clientId);
|
57
72
|
const userStatus = await fetchUserDetails({
|
58
|
-
client: this.
|
73
|
+
client: this.client,
|
59
74
|
email: localData?.email,
|
60
75
|
});
|
61
76
|
if (userStatus.status === UserWalletStatus.LOGGED_IN_WALLET_INITIALIZED) {
|
@@ -82,13 +97,13 @@ export class InAppNativeConnector implements InAppConnector {
|
|
82
97
|
return { status: UserWalletStatus.LOGGED_OUT };
|
83
98
|
}
|
84
99
|
getAccount(): Promise<Account> {
|
85
|
-
return getExistingUserAccount({ client: this.
|
100
|
+
return getExistingUserAccount({ client: this.client });
|
86
101
|
}
|
87
102
|
|
88
103
|
preAuthenticate(args: MultiStepAuthProviderType): Promise<void> {
|
89
104
|
return sendOtp({
|
90
105
|
...args,
|
91
|
-
client: this.
|
106
|
+
client: this.client,
|
92
107
|
});
|
93
108
|
}
|
94
109
|
|
@@ -103,14 +118,14 @@ export class InAppNativeConnector implements InAppConnector {
|
|
103
118
|
}
|
104
119
|
case "guest": {
|
105
120
|
return guestAuthenticate({
|
106
|
-
client: this.
|
121
|
+
client: this.client,
|
107
122
|
ecosystem: params.ecosystem,
|
108
123
|
storage: nativeLocalStorage,
|
109
124
|
});
|
110
125
|
}
|
111
126
|
case "wallet": {
|
112
127
|
return siweAuthenticate({
|
113
|
-
client: this.
|
128
|
+
client: this.client,
|
114
129
|
wallet: params.wallet,
|
115
130
|
chain: params.chain,
|
116
131
|
});
|
@@ -124,7 +139,7 @@ export class InAppNativeConnector implements InAppConnector {
|
|
124
139
|
const ExpoLinking = require("expo-linking");
|
125
140
|
const redirectUrl =
|
126
141
|
params.redirectUrl || (ExpoLinking.createURL("") as string);
|
127
|
-
return authenticate({ strategy, redirectUrl }, this.
|
142
|
+
return authenticate({ strategy, redirectUrl }, this.client);
|
128
143
|
}
|
129
144
|
case "passkey":
|
130
145
|
return this.passkeyAuth(params);
|
@@ -141,7 +156,7 @@ export class InAppNativeConnector implements InAppConnector {
|
|
141
156
|
email: params.email,
|
142
157
|
verificationCode: params.verificationCode,
|
143
158
|
strategy: "email",
|
144
|
-
client: this.
|
159
|
+
client: this.client,
|
145
160
|
});
|
146
161
|
}
|
147
162
|
case "phone": {
|
@@ -149,7 +164,7 @@ export class InAppNativeConnector implements InAppConnector {
|
|
149
164
|
phoneNumber: params.phoneNumber,
|
150
165
|
verificationCode: params.verificationCode,
|
151
166
|
strategy: "phone",
|
152
|
-
client: this.
|
167
|
+
client: this.client,
|
153
168
|
});
|
154
169
|
}
|
155
170
|
case "google":
|
@@ -222,7 +237,7 @@ export class InAppNativeConnector implements InAppConnector {
|
|
222
237
|
ecosystem?: Ecosystem;
|
223
238
|
}): Promise<AuthStoredTokenWithCookieReturnType> {
|
224
239
|
const { type, passkeyName, client, ecosystem } = args;
|
225
|
-
const domain = this.
|
240
|
+
const domain = this.passkeyDomain;
|
226
241
|
if (!domain) {
|
227
242
|
throw new Error(
|
228
243
|
"Passkey domain is required for native platforms. Please pass it in the 'auth' options when creating the inAppWallet().",
|
@@ -312,14 +327,14 @@ export class InAppNativeConnector implements InAppConnector {
|
|
312
327
|
|
313
328
|
// TODO (rn) expose in the interface
|
314
329
|
async deleteActiveAccount() {
|
315
|
-
return deleteActiveAccount({ client: this.
|
330
|
+
return deleteActiveAccount({ client: this.client });
|
316
331
|
}
|
317
332
|
|
318
333
|
private async socialLogin(
|
319
334
|
auth: OAuthRedirectObject,
|
320
335
|
): Promise<AuthLoginReturnType> {
|
321
336
|
try {
|
322
|
-
const { storedToken } = await socialLogin(auth, this.
|
337
|
+
const { storedToken } = await socialLogin(auth, this.client);
|
323
338
|
const account = await this.getAccount();
|
324
339
|
return {
|
325
340
|
user: {
|
@@ -344,7 +359,7 @@ export class InAppNativeConnector implements InAppConnector {
|
|
344
359
|
}): Promise<AuthLoginReturnType> {
|
345
360
|
try {
|
346
361
|
const { storedToken } = await siweLogin(
|
347
|
-
this.
|
362
|
+
this.client,
|
348
363
|
options.wallet,
|
349
364
|
options.chain,
|
350
365
|
);
|
@@ -376,10 +391,7 @@ export class InAppNativeConnector implements InAppConnector {
|
|
376
391
|
ecosystem?: Ecosystem;
|
377
392
|
}): Promise<AuthLoginReturnType> {
|
378
393
|
try {
|
379
|
-
const { storedToken } = await guestLogin(
|
380
|
-
this.options.client,
|
381
|
-
options.ecosystem,
|
382
|
-
);
|
394
|
+
const { storedToken } = await guestLogin(this.client, options.ecosystem);
|
383
395
|
const account = await this.getAccount();
|
384
396
|
return {
|
385
397
|
user: {
|
@@ -402,7 +414,7 @@ export class InAppNativeConnector implements InAppConnector {
|
|
402
414
|
password: string;
|
403
415
|
}): Promise<AuthLoginReturnType> {
|
404
416
|
try {
|
405
|
-
const { storedToken } = await customJwt(authOptions, this.
|
417
|
+
const { storedToken } = await customJwt(authOptions, this.client);
|
406
418
|
const account = await this.getAccount();
|
407
419
|
return {
|
408
420
|
user: {
|
@@ -423,10 +435,7 @@ export class InAppNativeConnector implements InAppConnector {
|
|
423
435
|
encryptionKey: string;
|
424
436
|
}): Promise<AuthLoginReturnType> {
|
425
437
|
try {
|
426
|
-
const { storedToken } = await authEndpoint(
|
427
|
-
authOptions,
|
428
|
-
this.options.client,
|
429
|
-
);
|
438
|
+
const { storedToken } = await authEndpoint(authOptions, this.client);
|
430
439
|
const account = await this.getAccount();
|
431
440
|
return {
|
432
441
|
user: {
|
@@ -443,7 +452,24 @@ export class InAppNativeConnector implements InAppConnector {
|
|
443
452
|
}
|
444
453
|
|
445
454
|
logout(): Promise<LogoutReturnType> {
|
446
|
-
return logoutUser(this.
|
455
|
+
return logoutUser(this.client.clientId);
|
456
|
+
}
|
457
|
+
|
458
|
+
async linkProfile(args: AuthArgsType) {
|
459
|
+
const { storedToken } = await this.authenticate(args);
|
460
|
+
return await linkAccount({
|
461
|
+
client: args.client,
|
462
|
+
tokenToLink: storedToken.cookieString,
|
463
|
+
storage: this.localStorage,
|
464
|
+
});
|
465
|
+
}
|
466
|
+
|
467
|
+
async getProfiles() {
|
468
|
+
return getLinkedProfilesInternal({
|
469
|
+
client: this.client,
|
470
|
+
ecosystem: this.ecosystem,
|
471
|
+
storage: this.localStorage,
|
472
|
+
});
|
447
473
|
}
|
448
474
|
}
|
449
475
|
|
@@ -1,7 +1,7 @@
|
|
1
1
|
import type { ThirdwebClient } from "../../../../../client/client.js";
|
2
2
|
import { getThirdwebBaseUrl } from "../../../../../utils/domains.js";
|
3
3
|
import { getClientFetch } from "../../../../../utils/fetch.js";
|
4
|
-
import type { Ecosystem } from "
|
4
|
+
import type { Ecosystem } from "../../../core/wallet/types.js";
|
5
5
|
|
6
6
|
/**
|
7
7
|
* Generate a new enclave wallet using an auth token
|
@@ -1,8 +1,8 @@
|
|
1
1
|
import type { ThirdwebClient } from "../../../../../client/client.js";
|
2
2
|
import { getThirdwebBaseUrl } from "../../../../../utils/domains.js";
|
3
3
|
import { getClientFetch } from "../../../../../utils/fetch.js";
|
4
|
+
import type { Ecosystem } from "../../../core/wallet/types.js";
|
4
5
|
import type { UserStatus } from "../../lib/enclave-wallet.js";
|
5
|
-
import type { Ecosystem } from "../../types.js";
|
6
6
|
|
7
7
|
/**
|
8
8
|
* Gets the user's status from the backend.
|
@@ -2,7 +2,7 @@ import type { ThirdwebClient } from "../../../../../client/client.js";
|
|
2
2
|
import { getThirdwebBaseUrl } from "../../../../../utils/domains.js";
|
3
3
|
import { getClientFetch } from "../../../../../utils/fetch.js";
|
4
4
|
import { stringify } from "../../../../../utils/json.js";
|
5
|
-
import type { Ecosystem } from "
|
5
|
+
import type { Ecosystem } from "../../../core/wallet/types.js";
|
6
6
|
import { getAuthToken } from "../get-auth-token.js";
|
7
7
|
|
8
8
|
export async function signMessage({
|
@@ -18,7 +18,7 @@ export async function signMessage({
|
|
18
18
|
};
|
19
19
|
}) {
|
20
20
|
const clientFetch = getClientFetch(client, ecosystem);
|
21
|
-
const authToken = await getAuthToken(client, ecosystem);
|
21
|
+
const authToken = await getAuthToken(client, ecosystem); // TODO (enclave): pass storage from web/native
|
22
22
|
|
23
23
|
const response = await clientFetch(
|
24
24
|
`${getThirdwebBaseUrl("inAppWallet")}/api/v1/enclave-wallet/sign-message`,
|
@@ -3,7 +3,7 @@ import { getThirdwebBaseUrl } from "../../../../../utils/domains.js";
|
|
3
3
|
import type { Hex } from "../../../../../utils/encoding/hex.js";
|
4
4
|
import { getClientFetch } from "../../../../../utils/fetch.js";
|
5
5
|
import { stringify } from "../../../../../utils/json.js";
|
6
|
-
import type { Ecosystem } from "
|
6
|
+
import type { Ecosystem } from "../../../core/wallet/types.js";
|
7
7
|
import { getAuthToken } from "../get-auth-token.js";
|
8
8
|
|
9
9
|
export async function signTransaction({
|
@@ -17,7 +17,7 @@ export async function signTransaction({
|
|
17
17
|
}) {
|
18
18
|
console.log("payload", payload);
|
19
19
|
const clientFetch = getClientFetch(client, ecosystem);
|
20
|
-
const authToken = await getAuthToken(client, ecosystem);
|
20
|
+
const authToken = await getAuthToken(client, ecosystem); // TODO (enclave): pass storage from web/native
|
21
21
|
|
22
22
|
const response = await clientFetch(
|
23
23
|
`${getThirdwebBaseUrl("inAppWallet")}/api/v1/enclave-wallet/sign-transaction`,
|
@@ -4,7 +4,7 @@ import type { ThirdwebClient } from "../../../../../client/client.js";
|
|
4
4
|
import { getThirdwebBaseUrl } from "../../../../../utils/domains.js";
|
5
5
|
import { getClientFetch } from "../../../../../utils/fetch.js";
|
6
6
|
import { stringify } from "../../../../../utils/json.js";
|
7
|
-
import type { Ecosystem } from "
|
7
|
+
import type { Ecosystem } from "../../../core/wallet/types.js";
|
8
8
|
import { getAuthToken } from "../get-auth-token.js";
|
9
9
|
|
10
10
|
export async function signTypedData<
|
@@ -20,7 +20,7 @@ export async function signTypedData<
|
|
20
20
|
payload: TypedDataDefinition<typedData, primaryType>;
|
21
21
|
}) {
|
22
22
|
const clientFetch = getClientFetch(client, ecosystem);
|
23
|
-
const authToken = await getAuthToken(client, ecosystem);
|
23
|
+
const authToken = await getAuthToken(client, ecosystem); // TODO (enclave): pass storage from web/native
|
24
24
|
|
25
25
|
const response = await clientFetch(
|
26
26
|
`${getThirdwebBaseUrl("inAppWallet")}/api/v1/enclave-wallet/sign-typed-data`,
|
@@ -5,7 +5,8 @@ import type {
|
|
5
5
|
AuthProvider,
|
6
6
|
SendEmailOtpReturnType,
|
7
7
|
} from "../../../core/authentication/types.js";
|
8
|
-
import type {
|
8
|
+
import type { Ecosystem } from "../../../core/wallet/types.js";
|
9
|
+
import type { ClientIdWithQuerierType } from "../../types.js";
|
9
10
|
import type { InAppWalletIframeCommunicator } from "../../utils/iFrameCommunication/InAppWalletIframeCommunicator.js";
|
10
11
|
|
11
12
|
export type LoginQuerierTypes = {
|
@@ -1,6 +1,5 @@
|
|
1
1
|
import type { ThirdwebClient } from "../../../../../client/client.js";
|
2
|
-
import {
|
3
|
-
import { ClientScopedStorage } from "../../../core/authentication/client-scoped-storage.js";
|
2
|
+
import type { ClientScopedStorage } from "../../../core/authentication/client-scoped-storage.js";
|
4
3
|
import type {
|
5
4
|
AuthAndWalletRpcReturnType,
|
6
5
|
AuthLoginReturnType,
|
@@ -8,7 +7,8 @@ import type {
|
|
8
7
|
LogoutReturnType,
|
9
8
|
SendEmailOtpReturnType,
|
10
9
|
} from "../../../core/authentication/types.js";
|
11
|
-
import type {
|
10
|
+
import type { Ecosystem } from "../../../core/wallet/types.js";
|
11
|
+
import type { ClientIdWithQuerierType } from "../../types.js";
|
12
12
|
import type { InAppWalletIframeCommunicator } from "../../utils/iFrameCommunication/InAppWalletIframeCommunicator.js";
|
13
13
|
import { generateWallet } from "../actions/generate-wallet.enclave.js";
|
14
14
|
import { getUserStatus } from "../actions/get-enclave-user-status.js";
|
@@ -56,22 +56,20 @@ export class Auth {
|
|
56
56
|
onAuthSuccess,
|
57
57
|
ecosystem,
|
58
58
|
baseUrl,
|
59
|
+
localStorage,
|
59
60
|
}: ClientIdWithQuerierType & {
|
60
61
|
baseUrl: string;
|
61
62
|
ecosystem?: Ecosystem;
|
62
63
|
onAuthSuccess: (
|
63
64
|
authDetails: AuthAndWalletRpcReturnType,
|
64
65
|
) => Promise<AuthLoginReturnType>;
|
66
|
+
localStorage: ClientScopedStorage;
|
65
67
|
}) {
|
66
68
|
this.client = client;
|
67
69
|
this.ecosystem = ecosystem;
|
68
70
|
|
69
71
|
this.AuthQuerier = querier;
|
70
|
-
this.localStorage =
|
71
|
-
storage: webLocalStorage,
|
72
|
-
clientId: client.clientId,
|
73
|
-
ecosystemId: ecosystem?.id,
|
74
|
-
});
|
72
|
+
this.localStorage = localStorage;
|
75
73
|
this.onAuthSuccess = onAuthSuccess;
|
76
74
|
this.BaseLogin = new BaseLogin({
|
77
75
|
postLogin: async (result) => {
|
@@ -1,14 +1,14 @@
|
|
1
1
|
import type { ThirdwebClient } from "../../../../../client/client.js";
|
2
|
-
import type { OneOf } from "../../../../../utils/type-utils.js";
|
3
2
|
import type { SocialAuthOption } from "../../../../../wallets/types.js";
|
4
3
|
import {
|
5
4
|
type AuthArgsType,
|
6
5
|
type GetAuthenticatedUserParams,
|
7
6
|
type PreAuthArgsType,
|
7
|
+
type SocialAuthArgsType,
|
8
8
|
UserWalletStatus,
|
9
9
|
} from "../../../core/authentication/types.js";
|
10
10
|
import { getOrCreateInAppWalletConnector } from "../../../core/wallet/in-app-core.js";
|
11
|
-
import type { Ecosystem } from "
|
11
|
+
import type { Ecosystem } from "../../../core/wallet/types.js";
|
12
12
|
|
13
13
|
// ---- KEEP IN SYNC WITH /wallets/in-app/native/auth/index.ts ---- //
|
14
14
|
// duplication needed for separate exports between web and native
|
@@ -142,24 +142,94 @@ export async function preAuthenticate(args: PreAuthArgsType) {
|
|
142
142
|
* ```
|
143
143
|
* @wallet
|
144
144
|
*/
|
145
|
-
export async function authenticate(
|
146
|
-
args
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
|
154
|
-
|
145
|
+
export async function authenticate(args: AuthArgsType) {
|
146
|
+
const connector = await getInAppWalletConnector(args.client, args.ecosystem);
|
147
|
+
return connector.authenticate(args);
|
148
|
+
}
|
149
|
+
|
150
|
+
/**
|
151
|
+
* Authenticates the user based on the provided authentication arguments using a redirect.
|
152
|
+
* @param args - The authentication arguments.
|
153
|
+
* @returns A promise that resolves to the authentication result.
|
154
|
+
* @example
|
155
|
+
* ```ts
|
156
|
+
* import { authenticate } from "thirdweb/wallets/in-app";
|
157
|
+
*
|
158
|
+
* const result = await authenticate({
|
159
|
+
* client,
|
160
|
+
* strategy: "google",
|
161
|
+
* mode: "redirect",
|
162
|
+
* redirectUrl: "https://example.org",
|
163
|
+
* });
|
164
|
+
* ```
|
165
|
+
* @wallet
|
166
|
+
*/
|
167
|
+
export async function authenticateWithRedirect(
|
168
|
+
args: SocialAuthArgsType & { client: ThirdwebClient; ecosystem?: Ecosystem },
|
155
169
|
) {
|
156
170
|
const connector = await getInAppWalletConnector(args.client, args.ecosystem);
|
157
|
-
|
158
|
-
|
159
|
-
|
160
|
-
args.strategy as SocialAuthOption,
|
161
|
-
args.mode,
|
162
|
-
args.redirectUrl,
|
171
|
+
if (!connector.authenticateWithRedirect) {
|
172
|
+
throw new Error(
|
173
|
+
"authenticateWithRedirect is not supported on this platform",
|
163
174
|
);
|
164
|
-
|
175
|
+
}
|
176
|
+
return connector.authenticateWithRedirect(
|
177
|
+
args.strategy as SocialAuthOption,
|
178
|
+
args.mode,
|
179
|
+
args.redirectUrl,
|
180
|
+
);
|
181
|
+
}
|
182
|
+
|
183
|
+
/**
|
184
|
+
* Connects a new profile (authentication method) to the current user.
|
185
|
+
* The connected profile can be any valid in-app wallet including email, phone, passkey, etc.
|
186
|
+
* The inputs mirror those used when authenticating normally.
|
187
|
+
*
|
188
|
+
* **When a profile is linked to the account, that profile can then be used to sign into the account.**
|
189
|
+
*
|
190
|
+
* This method is only available for in-app wallets.
|
191
|
+
*
|
192
|
+
* @param wallet - The wallet to link an additional profile to.
|
193
|
+
* @param auth - The authentications options to add the new profile.
|
194
|
+
* @returns A promise that resolves to the currently linked profiles when the connection is successful.
|
195
|
+
* @throws If the connection fails, if the profile is already linked to the account, or if the profile is already associated with another account.
|
196
|
+
*
|
197
|
+
* @example
|
198
|
+
* ```ts
|
199
|
+
* const wallet = inAppWallet();
|
200
|
+
*
|
201
|
+
* await wallet.connect({ client, strategy: "google" });
|
202
|
+
* const profiles = await linkProfile({ client, strategy: "discord" });
|
203
|
+
* ```
|
204
|
+
* @wallet
|
205
|
+
*/
|
206
|
+
export async function linkProfile(args: AuthArgsType) {
|
207
|
+
const connector = await getInAppWalletConnector(args.client, args.ecosystem);
|
208
|
+
return await connector.linkProfile(args);
|
209
|
+
}
|
210
|
+
|
211
|
+
/**
|
212
|
+
* Gets the linked profiles for the connected in-app or ecosystem wallet.
|
213
|
+
*
|
214
|
+
* @returns An array of accounts user profiles linked to the connected wallet.
|
215
|
+
*
|
216
|
+
* @example
|
217
|
+
* ```ts
|
218
|
+
* import { inAppWallet } from "thirdweb/wallets";
|
219
|
+
*
|
220
|
+
* const wallet = inAppWallet();
|
221
|
+
* wallet.connect({ strategy: "google" });
|
222
|
+
*
|
223
|
+
* const profiles = await getProfiles({
|
224
|
+
* client,
|
225
|
+
* });
|
226
|
+
*
|
227
|
+
* console.log(profiles[0].type);
|
228
|
+
* console.log(profiles[0].details.email);
|
229
|
+
* ```
|
230
|
+
* @wallet
|
231
|
+
*/
|
232
|
+
export async function getProfiles(args: GetAuthenticatedUserParams) {
|
233
|
+
const connector = await getInAppWalletConnector(args.client, args.ecosystem);
|
234
|
+
return connector.getProfiles();
|
165
235
|
}
|
@@ -3,7 +3,7 @@ import { getThirdwebBaseUrl } from "../../../../../utils/domains.js";
|
|
3
3
|
import type { OAuthOption } from "../../../../../wallets/types.js";
|
4
4
|
import { getLoginUrl } from "../../../core/authentication/getLoginPath.js";
|
5
5
|
import type { AuthStoredTokenWithCookieReturnType } from "../../../core/authentication/types.js";
|
6
|
-
import type { Ecosystem } from "
|
6
|
+
import type { Ecosystem } from "../../../core/wallet/types.js";
|
7
7
|
import { DEFAULT_POP_UP_SIZE } from "./constants.js";
|
8
8
|
|
9
9
|
const closeWindow = ({
|
@@ -6,20 +6,19 @@ import { getRpcClient } from "../../../../rpc/rpc.js";
|
|
6
6
|
import { getAddress } from "../../../../utils/address.js";
|
7
7
|
import { type Hex, toHex } from "../../../../utils/encoding/hex.js";
|
8
8
|
import { parseTypedData } from "../../../../utils/signatures/helpers/parseTypedData.js";
|
9
|
-
import { webLocalStorage } from "../../../../utils/storage/webStorage.js";
|
10
9
|
import type { Prettify } from "../../../../utils/type-utils.js";
|
11
10
|
import type {
|
12
11
|
Account,
|
13
12
|
SendTransactionOption,
|
14
13
|
} from "../../../interfaces/wallet.js";
|
15
|
-
import { ClientScopedStorage } from "../../core/authentication/client-scoped-storage.js";
|
14
|
+
import type { ClientScopedStorage } from "../../core/authentication/client-scoped-storage.js";
|
16
15
|
import {
|
17
16
|
type GetUser,
|
18
17
|
RecoveryShareManagement,
|
19
18
|
UserWalletStatus,
|
20
19
|
type WalletAddressObjectType,
|
21
20
|
} from "../../core/authentication/types.js";
|
22
|
-
import type { Ecosystem } from "
|
21
|
+
import type { Ecosystem } from "../../core/wallet/types.js";
|
23
22
|
import { getUserStatus } from "./actions/get-enclave-user-status.js";
|
24
23
|
import { signMessage as signEnclaveMessage } from "./actions/sign-message.enclave.js";
|
25
24
|
import { signTransaction as signEnclaveTransaction } from "./actions/sign-transaction.enclave.js";
|
@@ -48,29 +47,26 @@ export type UserStatus = {
|
|
48
47
|
};
|
49
48
|
|
50
49
|
export class EnclaveWallet implements IWebWallet {
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
50
|
+
private client: ThirdwebClient;
|
51
|
+
private ecosystem?: Ecosystem;
|
52
|
+
private address: string;
|
53
|
+
private localStorage: ClientScopedStorage;
|
55
54
|
|
56
55
|
constructor({
|
57
56
|
client,
|
58
57
|
ecosystem,
|
59
58
|
address,
|
59
|
+
storage,
|
60
60
|
}: Prettify<{
|
61
61
|
client: ThirdwebClient;
|
62
62
|
ecosystem?: Ecosystem;
|
63
63
|
address: string;
|
64
|
+
storage: ClientScopedStorage;
|
64
65
|
}>) {
|
65
66
|
this.client = client;
|
66
67
|
this.ecosystem = ecosystem;
|
67
68
|
this.address = address;
|
68
|
-
|
69
|
-
this.localStorage = new ClientScopedStorage({
|
70
|
-
storage: webLocalStorage,
|
71
|
-
clientId: client.clientId,
|
72
|
-
ecosystemId: ecosystem?.id,
|
73
|
-
});
|
69
|
+
this.localStorage = storage;
|
74
70
|
}
|
75
71
|
|
76
72
|
/**
|
@@ -1,8 +1,9 @@
|
|
1
1
|
import type { ThirdwebClient } from "../../../../client/client.js";
|
2
2
|
import { webLocalStorage } from "../../../../utils/storage/webStorage.js";
|
3
3
|
import { ClientScopedStorage } from "../../core/authentication/client-scoped-storage.js";
|
4
|
-
import type { Ecosystem } from "
|
4
|
+
import type { Ecosystem } from "../../core/wallet/types.js";
|
5
5
|
|
6
|
+
// TODO: Remove this and properly pass storage from web / native
|
6
7
|
export async function getAuthToken(
|
7
8
|
client: ThirdwebClient,
|
8
9
|
ecosystem?: Ecosystem,
|