@web3auth/modal 10.16.0 → 11.0.0-beta.1
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/lib.cjs/node_modules/style-inject/dist/style-inject.es.js +1 -1
- package/dist/lib.cjs/packages/modal/src/account-linking/index.js +12 -0
- package/dist/lib.cjs/packages/modal/src/account-linking/react.js +22 -0
- package/dist/lib.cjs/packages/modal/src/account-linking/vue.js +22 -0
- package/dist/lib.cjs/packages/modal/src/config.js +1 -1
- package/dist/lib.cjs/packages/modal/src/modalManager.js +473 -17
- package/dist/lib.cjs/packages/modal/src/react/Web3AuthProvider.js +4 -2
- package/dist/lib.cjs/packages/modal/src/react/context/WalletServicesInnerContext.js +3 -56
- package/dist/lib.cjs/packages/modal/src/react/context/Web3AuthInnerContext.js +15 -152
- package/dist/lib.cjs/packages/modal/src/react/hooks/useWeb3Auth.js +1 -22
- package/dist/lib.cjs/packages/modal/src/react/hooks/useWeb3AuthConnect.js +30 -43
- package/dist/lib.cjs/packages/modal/src/react/hooks/useWeb3AuthInner.js +8 -4
- package/dist/lib.cjs/packages/modal/src/react/index.js +61 -28
- package/dist/lib.cjs/packages/modal/src/react/solana/index.js +21 -8
- package/dist/lib.cjs/packages/modal/src/react/wagmi/provider.js +34 -17
- package/dist/lib.cjs/packages/modal/src/ui/components/BottomSheet/BottomSheet.js +15 -18
- package/dist/lib.cjs/packages/modal/src/ui/components/Button/Button.js +4 -2
- package/dist/lib.cjs/packages/modal/src/ui/components/Button/ButtonSocial/ButtonSocial.js +4 -4
- package/dist/lib.cjs/packages/modal/src/ui/components/Button/ButtonWallet/ButtonWallet.js +11 -12
- package/dist/lib.cjs/packages/modal/src/ui/components/Footer/Footer.js +7 -7
- package/dist/lib.cjs/packages/modal/src/ui/components/Image/Image.js +6 -6
- package/dist/lib.cjs/packages/modal/src/ui/components/Loader/Loader.js +132 -44
- package/dist/lib.cjs/packages/modal/src/ui/components/LoginHint/LoginHint.js +3 -3
- package/dist/lib.cjs/packages/modal/src/ui/components/Modal/Modal.js +20 -19
- package/dist/lib.cjs/packages/modal/src/ui/components/Otp/Otp.js +10 -10
- package/dist/lib.cjs/packages/modal/src/ui/components/PulseLoader/PulseLoader.js +4 -4
- package/dist/lib.cjs/packages/modal/src/ui/components/SocialLoginList/SocialLoginList.js +22 -24
- package/dist/lib.cjs/packages/modal/src/ui/components/SpinnerLoader/SpinnerLoader.css.js +6 -0
- package/dist/lib.cjs/packages/modal/src/ui/components/SpinnerLoader/SpinnerLoader.js +30 -0
- package/dist/lib.cjs/packages/modal/src/ui/components/Toast/Toast.js +12 -12
- package/dist/lib.cjs/packages/modal/src/ui/constants.js +5 -2
- package/dist/lib.cjs/packages/modal/src/ui/containers/AccountLinking/AccountLinking.js +109 -0
- package/dist/lib.cjs/packages/modal/src/ui/{components → containers}/ConnectWallet/ConnectWallet.js +77 -29
- package/dist/lib.cjs/packages/modal/src/ui/{components → containers}/ConnectWallet/ConnectWalletChainFilter/ConnectWalletChainFilter.js +20 -11
- package/dist/lib.cjs/packages/modal/src/ui/{components → containers}/ConnectWallet/ConnectWalletChainNamespaceSelect/ConnectWalletChainNamespaceSelect.js +10 -10
- package/dist/lib.cjs/packages/modal/src/ui/{components → containers}/ConnectWallet/ConnectWalletHeader/ConnectWalletHeader.js +9 -8
- package/dist/lib.cjs/packages/modal/src/ui/{components → containers}/ConnectWallet/ConnectWalletList/ConnectWalletList.js +41 -33
- package/dist/lib.cjs/packages/modal/src/ui/{components → containers}/ConnectWallet/ConnectWalletQrCode/ConnectWalletQrCode.js +13 -11
- package/dist/lib.cjs/packages/modal/src/ui/{components → containers}/ConnectWallet/ConnectWalletSearch/ConnectWalletSearch.js +13 -7
- package/dist/lib.cjs/packages/modal/src/ui/{components → containers}/Embed/Embed.js +12 -11
- package/dist/lib.cjs/packages/modal/src/ui/{components → containers}/Login/Login.js +95 -80
- package/dist/lib.cjs/packages/modal/src/ui/{components → containers}/Login/LoginOtp/LoginOtp.js +12 -12
- package/dist/lib.cjs/packages/modal/src/ui/{components → containers}/Login/LoginPasswordLess/LoginPasswordLess.js +14 -14
- package/dist/lib.cjs/packages/modal/src/ui/containers/Root/Root.js +250 -0
- package/dist/lib.cjs/packages/modal/src/ui/containers/Root/RootBodySheets/RootBodySheets.js +185 -0
- package/dist/lib.cjs/packages/modal/src/ui/containers/Widget/Widget.js +110 -0
- package/dist/lib.cjs/packages/modal/src/ui/context/ModalStateContext.js +158 -0
- package/dist/lib.cjs/packages/modal/src/ui/context/RootContext.js +64 -21
- package/dist/lib.cjs/packages/modal/src/ui/context/WidgetContext.js +52 -0
- package/dist/lib.cjs/packages/modal/src/ui/css/index.css.js +1 -1
- package/dist/lib.cjs/packages/modal/src/ui/i18n/dutch.json.js +14 -0
- package/dist/lib.cjs/packages/modal/src/ui/i18n/english.json.js +14 -0
- package/dist/lib.cjs/packages/modal/src/ui/i18n/french.json.js +14 -0
- package/dist/lib.cjs/packages/modal/src/ui/i18n/german.json.js +14 -0
- package/dist/lib.cjs/packages/modal/src/ui/i18n/japanese.json.js +26 -12
- package/dist/lib.cjs/packages/modal/src/ui/i18n/korean.json.js +14 -0
- package/dist/lib.cjs/packages/modal/src/ui/i18n/mandarin.json.js +14 -0
- package/dist/lib.cjs/packages/modal/src/ui/i18n/portuguese.json.js +14 -0
- package/dist/lib.cjs/packages/modal/src/ui/i18n/spanish.json.js +14 -0
- package/dist/lib.cjs/packages/modal/src/ui/i18n/turkish.json.js +14 -0
- package/dist/lib.cjs/packages/modal/src/ui/interfaces.js +28 -1
- package/dist/lib.cjs/packages/modal/src/ui/loginModal.js +186 -46
- package/dist/lib.cjs/packages/modal/src/vue/WalletServicesInnerProvider.js +2 -50
- package/dist/lib.cjs/packages/modal/src/vue/Web3AuthProvider.js +7 -170
- package/dist/lib.cjs/packages/modal/src/vue/composables/useWeb3AuthConnect.js +31 -33
- package/dist/lib.cjs/packages/modal/src/vue/composables/useWeb3AuthInner.js +2 -5
- package/dist/lib.cjs/packages/modal/src/vue/index.js +61 -28
- package/dist/lib.cjs/packages/modal/src/vue/solana/index.js +29 -8
- package/dist/lib.cjs/packages/modal/src/vue/wagmi/provider.js +37 -23
- package/dist/lib.cjs/packages/modal/src/x402/index.js +12 -0
- package/dist/lib.cjs/packages/modal/src/x402/react.js +26 -0
- package/dist/lib.cjs/packages/modal/src/x402/vue.js +18 -0
- package/dist/lib.cjs/types/account-linking/index.d.ts +1 -0
- package/dist/lib.cjs/types/account-linking/react.d.ts +2 -0
- package/dist/lib.cjs/types/account-linking/vue.d.ts +2 -0
- package/dist/lib.cjs/types/interface.d.ts +2 -2
- package/dist/lib.cjs/types/modalManager.d.ts +46 -4
- package/dist/lib.cjs/types/react/context/WalletServicesInnerContext.d.ts +12 -5
- package/dist/lib.cjs/types/react/context/Web3AuthInnerContext.d.ts +4 -3
- package/dist/lib.cjs/types/react/hooks/index.d.ts +16 -14
- package/dist/lib.cjs/types/react/hooks/useWallets.d.ts +2 -0
- package/dist/lib.cjs/types/react/hooks/useWeb3Auth.d.ts +1 -2
- package/dist/lib.cjs/types/react/hooks/useWeb3AuthConnect.d.ts +3 -3
- package/dist/lib.cjs/types/react/interfaces.d.ts +3 -2
- package/dist/lib.cjs/types/react/solana/hooks/index.d.ts +5 -4
- package/dist/lib.cjs/types/react/solana/index.d.ts +1 -0
- package/dist/lib.cjs/types/react/solana/provider.d.ts +1 -0
- package/dist/lib.cjs/types/ui/components/BottomSheet/BottomSheet.d.ts +1 -1
- package/dist/lib.cjs/types/ui/components/BottomSheet/BottomSheet.type.d.ts +4 -3
- package/dist/lib.cjs/types/ui/components/Button/ButtonWallet/ButtonWallet.type.d.ts +1 -0
- package/dist/lib.cjs/types/ui/components/Loader/Loader.type.d.ts +7 -5
- package/dist/lib.cjs/types/ui/components/LoginHint/LoginHint.type.d.ts +2 -1
- package/dist/lib.cjs/types/ui/components/SpinnerLoader/SpinnerLoader.d.ts +4 -0
- package/dist/lib.cjs/types/ui/components/SpinnerLoader/SpinnerLoader.type.d.ts +9 -0
- package/dist/lib.cjs/types/ui/components/SpinnerLoader/index.d.ts +2 -0
- package/dist/lib.cjs/types/ui/constants.d.ts +7 -4
- package/dist/lib.cjs/types/ui/containers/AccountLinking/AccountLinking.d.ts +6 -0
- package/dist/lib.cjs/types/ui/containers/AccountLinking/index.d.ts +1 -0
- package/dist/lib.cjs/types/ui/containers/ConnectWallet/ConnectWallet.type.d.ts +7 -0
- package/dist/lib.cjs/types/ui/{components → containers}/ConnectWallet/ConnectWalletChainFilter/ConnectWalletChainFilter.type.d.ts +0 -2
- package/dist/lib.cjs/types/ui/{components → containers}/ConnectWallet/ConnectWalletHeader/ConnectWalletHeader.type.d.ts +1 -0
- package/dist/lib.cjs/types/ui/{components → containers}/ConnectWallet/ConnectWalletList/ConnectWalletList.type.d.ts +3 -9
- package/dist/lib.cjs/types/ui/{components → containers}/ConnectWallet/ConnectWalletSearch/ConnectWalletSearch.type.d.ts +0 -2
- package/dist/lib.cjs/types/ui/containers/Login/Login.type.d.ts +6 -0
- package/dist/lib.cjs/types/ui/{components → containers}/Root/Root.d.ts +1 -1
- package/dist/lib.cjs/types/ui/containers/Root/Root.type.d.ts +3 -0
- package/dist/lib.cjs/types/ui/containers/Root/RootBodySheets/RootBodySheets.d.ts +1 -0
- package/dist/lib.cjs/types/ui/containers/Widget/Widget.type.d.ts +5 -0
- package/dist/lib.cjs/types/ui/context/ModalStateContext.d.ts +28 -0
- package/dist/lib.cjs/types/ui/context/RootContext.d.ts +19 -7
- package/dist/lib.cjs/types/ui/context/WidgetContext.d.ts +45 -0
- package/dist/lib.cjs/types/ui/interfaces.d.ts +53 -15
- package/dist/lib.cjs/types/ui/loginModal.d.ts +31 -4
- package/dist/lib.cjs/types/ui/utils.d.ts +1 -1
- package/dist/lib.cjs/types/vue/composables/index.d.ts +3 -14
- package/dist/lib.cjs/types/vue/composables/useWallets.d.ts +2 -0
- package/dist/lib.cjs/types/vue/composables/useWeb3Auth.d.ts +1 -2
- package/dist/lib.cjs/types/vue/composables/useWeb3AuthConnect.d.ts +3 -3
- package/dist/lib.cjs/types/vue/interfaces.d.ts +3 -17
- package/dist/lib.cjs/types/vue/solana/composables/index.d.ts +3 -4
- package/dist/lib.cjs/types/vue/solana/composables/useSolanaClient.d.ts +1 -0
- package/dist/lib.cjs/types/vue/solana/constants.d.ts +1 -0
- package/dist/lib.cjs/types/vue/solana/index.d.ts +2 -0
- package/dist/lib.cjs/types/vue/solana/provider.d.ts +1 -0
- package/dist/lib.cjs/types/x402/index.d.ts +1 -0
- package/dist/lib.cjs/types/x402/react.d.ts +2 -0
- package/dist/lib.cjs/types/x402/vue.d.ts +2 -0
- package/dist/lib.esm/node_modules/style-inject/dist/style-inject.es.js +1 -1
- package/dist/lib.esm/packages/modal/src/account-linking/index.js +1 -0
- package/dist/lib.esm/packages/modal/src/account-linking/react.js +1 -0
- package/dist/lib.esm/packages/modal/src/account-linking/vue.js +1 -0
- package/dist/lib.esm/packages/modal/src/config.js +1 -1
- package/dist/lib.esm/packages/modal/src/modalManager.js +478 -19
- package/dist/lib.esm/packages/modal/src/react/Web3AuthProvider.js +4 -2
- package/dist/lib.esm/packages/modal/src/react/context/WalletServicesInnerContext.js +4 -57
- package/dist/lib.esm/packages/modal/src/react/context/Web3AuthInnerContext.js +12 -151
- package/dist/lib.esm/packages/modal/src/react/hooks/useWeb3Auth.js +1 -22
- package/dist/lib.esm/packages/modal/src/react/hooks/useWeb3AuthConnect.js +28 -41
- package/dist/lib.esm/packages/modal/src/react/hooks/useWeb3AuthInner.js +7 -3
- package/dist/lib.esm/packages/modal/src/react/index.js +1 -14
- package/dist/lib.esm/packages/modal/src/react/solana/index.js +1 -4
- package/dist/lib.esm/packages/modal/src/react/wagmi/provider.js +34 -17
- package/dist/lib.esm/packages/modal/src/ui/components/BottomSheet/BottomSheet.js +15 -18
- package/dist/lib.esm/packages/modal/src/ui/components/Button/Button.js +4 -2
- package/dist/lib.esm/packages/modal/src/ui/components/Button/ButtonSocial/ButtonSocial.js +4 -4
- package/dist/lib.esm/packages/modal/src/ui/components/Button/ButtonWallet/ButtonWallet.js +12 -13
- package/dist/lib.esm/packages/modal/src/ui/components/Footer/Footer.js +7 -7
- package/dist/lib.esm/packages/modal/src/ui/components/Image/Image.js +7 -7
- package/dist/lib.esm/packages/modal/src/ui/components/Loader/Loader.js +133 -45
- package/dist/lib.esm/packages/modal/src/ui/components/LoginHint/LoginHint.js +3 -3
- package/dist/lib.esm/packages/modal/src/ui/components/Modal/Modal.js +20 -19
- package/dist/lib.esm/packages/modal/src/ui/components/Otp/Otp.js +10 -10
- package/dist/lib.esm/packages/modal/src/ui/components/PulseLoader/PulseLoader.js +4 -4
- package/dist/lib.esm/packages/modal/src/ui/components/SocialLoginList/SocialLoginList.js +22 -24
- package/dist/lib.esm/packages/modal/src/ui/components/SpinnerLoader/SpinnerLoader.css.js +4 -0
- package/dist/lib.esm/packages/modal/src/ui/components/SpinnerLoader/SpinnerLoader.js +28 -0
- package/dist/lib.esm/packages/modal/src/ui/components/Toast/Toast.js +14 -14
- package/dist/lib.esm/packages/modal/src/ui/constants.js +5 -2
- package/dist/lib.esm/packages/modal/src/ui/containers/AccountLinking/AccountLinking.js +107 -0
- package/dist/lib.esm/packages/modal/src/ui/{components → containers}/ConnectWallet/ConnectWallet.js +81 -32
- package/dist/lib.esm/packages/modal/src/ui/{components → containers}/ConnectWallet/ConnectWalletChainFilter/ConnectWalletChainFilter.js +20 -11
- package/dist/lib.esm/packages/modal/src/ui/{components → containers}/ConnectWallet/ConnectWalletChainNamespaceSelect/ConnectWalletChainNamespaceSelect.js +10 -10
- package/dist/lib.esm/packages/modal/src/ui/{components → containers}/ConnectWallet/ConnectWalletHeader/ConnectWalletHeader.js +9 -8
- package/dist/lib.esm/packages/modal/src/ui/{components → containers}/ConnectWallet/ConnectWalletList/ConnectWalletList.js +41 -33
- package/dist/lib.esm/packages/modal/src/ui/{components → containers}/ConnectWallet/ConnectWalletQrCode/ConnectWalletQrCode.js +15 -13
- package/dist/lib.esm/packages/modal/src/ui/{components → containers}/ConnectWallet/ConnectWalletSearch/ConnectWalletSearch.js +13 -7
- package/dist/lib.esm/packages/modal/src/ui/{components → containers}/Embed/Embed.js +12 -11
- package/dist/lib.esm/packages/modal/src/ui/{components → containers}/Login/Login.js +99 -83
- package/dist/lib.esm/packages/modal/src/ui/{components → containers}/Login/LoginOtp/LoginOtp.js +12 -12
- package/dist/lib.esm/packages/modal/src/ui/{components → containers}/Login/LoginPasswordLess/LoginPasswordLess.js +14 -14
- package/dist/lib.esm/packages/modal/src/ui/containers/Root/Root.js +253 -0
- package/dist/lib.esm/packages/modal/src/ui/containers/Root/RootBodySheets/RootBodySheets.js +183 -0
- package/dist/lib.esm/packages/modal/src/ui/containers/Widget/Widget.js +108 -0
- package/dist/lib.esm/packages/modal/src/ui/context/ModalStateContext.js +161 -0
- package/dist/lib.esm/packages/modal/src/ui/context/RootContext.js +60 -22
- package/dist/lib.esm/packages/modal/src/ui/context/WidgetContext.js +49 -0
- package/dist/lib.esm/packages/modal/src/ui/css/index.css.js +1 -1
- package/dist/lib.esm/packages/modal/src/ui/i18n/dutch.json.js +14 -0
- package/dist/lib.esm/packages/modal/src/ui/i18n/english.json.js +14 -0
- package/dist/lib.esm/packages/modal/src/ui/i18n/french.json.js +14 -0
- package/dist/lib.esm/packages/modal/src/ui/i18n/german.json.js +14 -0
- package/dist/lib.esm/packages/modal/src/ui/i18n/japanese.json.js +26 -12
- package/dist/lib.esm/packages/modal/src/ui/i18n/korean.json.js +14 -0
- package/dist/lib.esm/packages/modal/src/ui/i18n/mandarin.json.js +14 -0
- package/dist/lib.esm/packages/modal/src/ui/i18n/portuguese.json.js +14 -0
- package/dist/lib.esm/packages/modal/src/ui/i18n/spanish.json.js +14 -0
- package/dist/lib.esm/packages/modal/src/ui/i18n/turkish.json.js +14 -0
- package/dist/lib.esm/packages/modal/src/ui/interfaces.js +26 -2
- package/dist/lib.esm/packages/modal/src/ui/loginModal.js +188 -48
- package/dist/lib.esm/packages/modal/src/vue/WalletServicesInnerProvider.js +5 -54
- package/dist/lib.esm/packages/modal/src/vue/Web3AuthProvider.js +9 -176
- package/dist/lib.esm/packages/modal/src/vue/composables/useWeb3AuthConnect.js +28 -30
- package/dist/lib.esm/packages/modal/src/vue/composables/useWeb3AuthInner.js +2 -5
- package/dist/lib.esm/packages/modal/src/vue/index.js +1 -14
- package/dist/lib.esm/packages/modal/src/vue/solana/index.js +1 -4
- package/dist/lib.esm/packages/modal/src/vue/wagmi/provider.js +33 -19
- package/dist/lib.esm/packages/modal/src/x402/index.js +1 -0
- package/dist/lib.esm/packages/modal/src/x402/react.js +1 -0
- package/dist/lib.esm/packages/modal/src/x402/vue.js +1 -0
- package/package.json +94 -47
- package/dist/lib.cjs/packages/modal/src/providers/ethereum-mpc-provider/index.js +0 -12
- package/dist/lib.cjs/packages/modal/src/react/hooks/useChain.js +0 -16
- package/dist/lib.cjs/packages/modal/src/react/hooks/useCheckout.js +0 -34
- package/dist/lib.cjs/packages/modal/src/react/hooks/useEnableMFA.js +0 -30
- package/dist/lib.cjs/packages/modal/src/react/hooks/useFunding.js +0 -34
- package/dist/lib.cjs/packages/modal/src/react/hooks/useIdentityToken.js +0 -46
- package/dist/lib.cjs/packages/modal/src/react/hooks/useManageMFA.js +0 -30
- package/dist/lib.cjs/packages/modal/src/react/hooks/useReceive.js +0 -34
- package/dist/lib.cjs/packages/modal/src/react/hooks/useSwap.js +0 -34
- package/dist/lib.cjs/packages/modal/src/react/hooks/useSwitchChain.js +0 -32
- package/dist/lib.cjs/packages/modal/src/react/hooks/useWalletConnectScanner.js +0 -34
- package/dist/lib.cjs/packages/modal/src/react/hooks/useWalletServicesPlugin.js +0 -13
- package/dist/lib.cjs/packages/modal/src/react/hooks/useWalletUI.js +0 -34
- package/dist/lib.cjs/packages/modal/src/react/hooks/useWeb3AuthDisconnect.js +0 -30
- package/dist/lib.cjs/packages/modal/src/react/hooks/useWeb3AuthUser.js +0 -50
- package/dist/lib.cjs/packages/modal/src/react/solana/hooks/useSignAndSendTransaction.js +0 -36
- package/dist/lib.cjs/packages/modal/src/react/solana/hooks/useSignMessage.js +0 -37
- package/dist/lib.cjs/packages/modal/src/react/solana/hooks/useSignTransaction.js +0 -36
- package/dist/lib.cjs/packages/modal/src/react/solana/hooks/useSolanaWallet.js +0 -68
- package/dist/lib.cjs/packages/modal/src/ui/components/CircularLoader/CircularLoader.js +0 -88
- package/dist/lib.cjs/packages/modal/src/ui/components/Root/Root.js +0 -513
- package/dist/lib.cjs/packages/modal/src/ui/components/Widget/Widget.js +0 -251
- package/dist/lib.cjs/packages/modal/src/ui/context/ThemeContext.js +0 -9
- package/dist/lib.cjs/packages/modal/src/vue/composables/useChain.js +0 -13
- package/dist/lib.cjs/packages/modal/src/vue/composables/useCheckout.js +0 -35
- package/dist/lib.cjs/packages/modal/src/vue/composables/useEnableMFA.js +0 -33
- package/dist/lib.cjs/packages/modal/src/vue/composables/useFunding.js +0 -35
- package/dist/lib.cjs/packages/modal/src/vue/composables/useIdentityToken.js +0 -51
- package/dist/lib.cjs/packages/modal/src/vue/composables/useManageMFA.js +0 -33
- package/dist/lib.cjs/packages/modal/src/vue/composables/useReceive.js +0 -35
- package/dist/lib.cjs/packages/modal/src/vue/composables/useSwap.js +0 -35
- package/dist/lib.cjs/packages/modal/src/vue/composables/useSwitchChain.js +0 -33
- package/dist/lib.cjs/packages/modal/src/vue/composables/useWalletConnectScanner.js +0 -35
- package/dist/lib.cjs/packages/modal/src/vue/composables/useWalletServicesPlugin.js +0 -13
- package/dist/lib.cjs/packages/modal/src/vue/composables/useWalletUI.js +0 -35
- package/dist/lib.cjs/packages/modal/src/vue/composables/useWeb3AuthDisconnect.js +0 -33
- package/dist/lib.cjs/packages/modal/src/vue/composables/useWeb3AuthUser.js +0 -54
- package/dist/lib.cjs/packages/modal/src/vue/solana/composables/useSignAndSendTransaction.js +0 -37
- package/dist/lib.cjs/packages/modal/src/vue/solana/composables/useSignMessage.js +0 -39
- package/dist/lib.cjs/packages/modal/src/vue/solana/composables/useSignTransaction.js +0 -37
- package/dist/lib.cjs/packages/modal/src/vue/solana/composables/useSolanaWallet.js +0 -67
- package/dist/lib.cjs/types/providers/ethereum-mpc-provider/index.d.ts +0 -1
- package/dist/lib.cjs/types/react/hooks/useChain.d.ts +0 -6
- package/dist/lib.cjs/types/react/hooks/useCheckout.d.ts +0 -8
- package/dist/lib.cjs/types/react/hooks/useEnableMFA.d.ts +0 -7
- package/dist/lib.cjs/types/react/hooks/useFunding.d.ts +0 -8
- package/dist/lib.cjs/types/react/hooks/useIdentityToken.d.ts +0 -13
- package/dist/lib.cjs/types/react/hooks/useManageMFA.d.ts +0 -7
- package/dist/lib.cjs/types/react/hooks/useReceive.d.ts +0 -8
- package/dist/lib.cjs/types/react/hooks/useSwap.d.ts +0 -8
- package/dist/lib.cjs/types/react/hooks/useSwitchChain.d.ts +0 -7
- package/dist/lib.cjs/types/react/hooks/useWalletConnectScanner.d.ts +0 -8
- package/dist/lib.cjs/types/react/hooks/useWalletServicesPlugin.d.ts +0 -2
- package/dist/lib.cjs/types/react/hooks/useWalletUI.d.ts +0 -8
- package/dist/lib.cjs/types/react/hooks/useWeb3AuthDisconnect.d.ts +0 -9
- package/dist/lib.cjs/types/react/hooks/useWeb3AuthUser.d.ts +0 -9
- package/dist/lib.cjs/types/react/solana/hooks/useSignAndSendTransaction.d.ts +0 -8
- package/dist/lib.cjs/types/react/solana/hooks/useSignMessage.d.ts +0 -8
- package/dist/lib.cjs/types/react/solana/hooks/useSignTransaction.d.ts +0 -13
- package/dist/lib.cjs/types/react/solana/hooks/useSolanaWallet.d.ts +0 -8
- package/dist/lib.cjs/types/ui/components/CircularLoader/CircularLoader.d.ts +0 -3
- package/dist/lib.cjs/types/ui/components/CircularLoader/CircularLoader.type.d.ts +0 -19
- package/dist/lib.cjs/types/ui/components/CircularLoader/index.d.ts +0 -2
- package/dist/lib.cjs/types/ui/components/ConnectWallet/ConnectWallet.type.d.ts +0 -27
- package/dist/lib.cjs/types/ui/components/Login/Login.type.d.ts +0 -35
- package/dist/lib.cjs/types/ui/components/Root/Root.type.d.ts +0 -36
- package/dist/lib.cjs/types/ui/components/Widget/Widget.type.d.ts +0 -24
- package/dist/lib.cjs/types/ui/context/ThemeContext.d.ts +0 -3
- package/dist/lib.cjs/types/vue/composables/useChain.d.ts +0 -7
- package/dist/lib.cjs/types/vue/composables/useCheckout.d.ts +0 -9
- package/dist/lib.cjs/types/vue/composables/useEnableMFA.d.ts +0 -8
- package/dist/lib.cjs/types/vue/composables/useFunding.d.ts +0 -9
- package/dist/lib.cjs/types/vue/composables/useIdentityToken.d.ts +0 -9
- package/dist/lib.cjs/types/vue/composables/useManageMFA.d.ts +0 -8
- package/dist/lib.cjs/types/vue/composables/useReceive.d.ts +0 -9
- package/dist/lib.cjs/types/vue/composables/useSwap.d.ts +0 -9
- package/dist/lib.cjs/types/vue/composables/useSwitchChain.d.ts +0 -10
- package/dist/lib.cjs/types/vue/composables/useWalletConnectScanner.d.ts +0 -9
- package/dist/lib.cjs/types/vue/composables/useWalletServicesPlugin.d.ts +0 -2
- package/dist/lib.cjs/types/vue/composables/useWalletUI.d.ts +0 -9
- package/dist/lib.cjs/types/vue/composables/useWeb3AuthDisconnect.d.ts +0 -10
- package/dist/lib.cjs/types/vue/composables/useWeb3AuthUser.d.ts +0 -10
- package/dist/lib.cjs/types/vue/solana/composables/useSignAndSendTransaction.d.ts +0 -9
- package/dist/lib.cjs/types/vue/solana/composables/useSignMessage.d.ts +0 -9
- package/dist/lib.cjs/types/vue/solana/composables/useSignTransaction.d.ts +0 -9
- package/dist/lib.cjs/types/vue/solana/composables/useSolanaWallet.d.ts +0 -9
- package/dist/lib.esm/packages/modal/src/providers/ethereum-mpc-provider/index.js +0 -1
- package/dist/lib.esm/packages/modal/src/react/hooks/useChain.js +0 -14
- package/dist/lib.esm/packages/modal/src/react/hooks/useCheckout.js +0 -32
- package/dist/lib.esm/packages/modal/src/react/hooks/useEnableMFA.js +0 -28
- package/dist/lib.esm/packages/modal/src/react/hooks/useFunding.js +0 -32
- package/dist/lib.esm/packages/modal/src/react/hooks/useIdentityToken.js +0 -44
- package/dist/lib.esm/packages/modal/src/react/hooks/useManageMFA.js +0 -28
- package/dist/lib.esm/packages/modal/src/react/hooks/useReceive.js +0 -32
- package/dist/lib.esm/packages/modal/src/react/hooks/useSwap.js +0 -32
- package/dist/lib.esm/packages/modal/src/react/hooks/useSwitchChain.js +0 -30
- package/dist/lib.esm/packages/modal/src/react/hooks/useWalletConnectScanner.js +0 -32
- package/dist/lib.esm/packages/modal/src/react/hooks/useWalletServicesPlugin.js +0 -11
- package/dist/lib.esm/packages/modal/src/react/hooks/useWalletUI.js +0 -32
- package/dist/lib.esm/packages/modal/src/react/hooks/useWeb3AuthDisconnect.js +0 -28
- package/dist/lib.esm/packages/modal/src/react/hooks/useWeb3AuthUser.js +0 -48
- package/dist/lib.esm/packages/modal/src/react/solana/hooks/useSignAndSendTransaction.js +0 -34
- package/dist/lib.esm/packages/modal/src/react/solana/hooks/useSignMessage.js +0 -35
- package/dist/lib.esm/packages/modal/src/react/solana/hooks/useSignTransaction.js +0 -34
- package/dist/lib.esm/packages/modal/src/react/solana/hooks/useSolanaWallet.js +0 -64
- package/dist/lib.esm/packages/modal/src/ui/components/CircularLoader/CircularLoader.js +0 -86
- package/dist/lib.esm/packages/modal/src/ui/components/Root/Root.js +0 -524
- package/dist/lib.esm/packages/modal/src/ui/components/Widget/Widget.js +0 -253
- package/dist/lib.esm/packages/modal/src/ui/context/ThemeContext.js +0 -7
- package/dist/lib.esm/packages/modal/src/vue/composables/useChain.js +0 -11
- package/dist/lib.esm/packages/modal/src/vue/composables/useCheckout.js +0 -33
- package/dist/lib.esm/packages/modal/src/vue/composables/useEnableMFA.js +0 -31
- package/dist/lib.esm/packages/modal/src/vue/composables/useFunding.js +0 -33
- package/dist/lib.esm/packages/modal/src/vue/composables/useIdentityToken.js +0 -49
- package/dist/lib.esm/packages/modal/src/vue/composables/useManageMFA.js +0 -31
- package/dist/lib.esm/packages/modal/src/vue/composables/useReceive.js +0 -33
- package/dist/lib.esm/packages/modal/src/vue/composables/useSwap.js +0 -33
- package/dist/lib.esm/packages/modal/src/vue/composables/useSwitchChain.js +0 -31
- package/dist/lib.esm/packages/modal/src/vue/composables/useWalletConnectScanner.js +0 -33
- package/dist/lib.esm/packages/modal/src/vue/composables/useWalletServicesPlugin.js +0 -11
- package/dist/lib.esm/packages/modal/src/vue/composables/useWalletUI.js +0 -33
- package/dist/lib.esm/packages/modal/src/vue/composables/useWeb3AuthDisconnect.js +0 -31
- package/dist/lib.esm/packages/modal/src/vue/composables/useWeb3AuthUser.js +0 -52
- package/dist/lib.esm/packages/modal/src/vue/solana/composables/useSignAndSendTransaction.js +0 -35
- package/dist/lib.esm/packages/modal/src/vue/solana/composables/useSignMessage.js +0 -37
- package/dist/lib.esm/packages/modal/src/vue/solana/composables/useSignTransaction.js +0 -35
- package/dist/lib.esm/packages/modal/src/vue/solana/composables/useSolanaWallet.js +0 -65
- package/dist/modal.umd.min.js +0 -2
- package/dist/modal.umd.min.js.LICENSE.txt +0 -102
- /package/dist/lib.cjs/types/ui/{components → containers}/ConnectWallet/ConnectWallet.d.ts +0 -0
- /package/dist/lib.cjs/types/ui/{components → containers}/ConnectWallet/ConnectWalletChainFilter/ConnectWalletChainFilter.d.ts +0 -0
- /package/dist/lib.cjs/types/ui/{components → containers}/ConnectWallet/ConnectWalletChainFilter/index.d.ts +0 -0
- /package/dist/lib.cjs/types/ui/{components → containers}/ConnectWallet/ConnectWalletChainNamespaceSelect/ConnectWalletChainNamespaceSelect.d.ts +0 -0
- /package/dist/lib.cjs/types/ui/{components → containers}/ConnectWallet/ConnectWalletChainNamespaceSelect/ConnectWalletChainNamespaceSelect.type.d.ts +0 -0
- /package/dist/lib.cjs/types/ui/{components → containers}/ConnectWallet/ConnectWalletChainNamespaceSelect/index.d.ts +0 -0
- /package/dist/lib.cjs/types/ui/{components → containers}/ConnectWallet/ConnectWalletHeader/ConnectWalletHeader.d.ts +0 -0
- /package/dist/lib.cjs/types/ui/{components → containers}/ConnectWallet/ConnectWalletHeader/index.d.ts +0 -0
- /package/dist/lib.cjs/types/ui/{components → containers}/ConnectWallet/ConnectWalletList/ConnectWalletList.d.ts +0 -0
- /package/dist/lib.cjs/types/ui/{components → containers}/ConnectWallet/ConnectWalletList/index.d.ts +0 -0
- /package/dist/lib.cjs/types/ui/{components → containers}/ConnectWallet/ConnectWalletQrCode/ConnectWalletQrCode.d.ts +0 -0
- /package/dist/lib.cjs/types/ui/{components → containers}/ConnectWallet/ConnectWalletQrCode/ConnectWalletQrCode.type.d.ts +0 -0
- /package/dist/lib.cjs/types/ui/{components → containers}/ConnectWallet/ConnectWalletQrCode/index.d.ts +0 -0
- /package/dist/lib.cjs/types/ui/{components → containers}/ConnectWallet/ConnectWalletSearch/ConnectWalletSearch.d.ts +0 -0
- /package/dist/lib.cjs/types/ui/{components → containers}/ConnectWallet/ConnectWalletSearch/index.d.ts +0 -0
- /package/dist/lib.cjs/types/ui/{components → containers}/ConnectWallet/index.d.ts +0 -0
- /package/dist/lib.cjs/types/ui/{components → containers}/Embed/Embed.d.ts +0 -0
- /package/dist/lib.cjs/types/ui/{components → containers}/Embed/Embed.type.d.ts +0 -0
- /package/dist/lib.cjs/types/ui/{components → containers}/Embed/index.d.ts +0 -0
- /package/dist/lib.cjs/types/ui/{components → containers}/Login/Login.d.ts +0 -0
- /package/dist/lib.cjs/types/ui/{components → containers}/Login/LoginOtp/LoginOtp.d.ts +0 -0
- /package/dist/lib.cjs/types/ui/{components → containers}/Login/LoginOtp/LoginOtp.type.d.ts +0 -0
- /package/dist/lib.cjs/types/ui/{components → containers}/Login/LoginOtp/index.d.ts +0 -0
- /package/dist/lib.cjs/types/ui/{components → containers}/Login/LoginPasswordLess/LoginPasswordLess.d.ts +0 -0
- /package/dist/lib.cjs/types/ui/{components → containers}/Login/LoginPasswordLess/LoginPasswordLess.type.d.ts +0 -0
- /package/dist/lib.cjs/types/ui/{components → containers}/Login/LoginPasswordLess/index.d.ts +0 -0
- /package/dist/lib.cjs/types/ui/{components → containers}/Login/index.d.ts +0 -0
- /package/dist/lib.cjs/types/ui/{components → containers}/Root/index.d.ts +0 -0
- /package/dist/lib.cjs/types/ui/{components → containers}/Widget/Widget.d.ts +0 -0
- /package/dist/lib.cjs/types/ui/{components → containers}/Widget/index.d.ts +0 -0
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import _objectSpread from '@babel/runtime/helpers/objectSpread2';
|
|
2
2
|
import _defineProperty from '@babel/runtime/helpers/defineProperty';
|
|
3
3
|
import { serializeError } from '@web3auth/auth';
|
|
4
|
-
import { Web3AuthNoModal, cloneDeep, WALLET_CONNECTORS,
|
|
4
|
+
import { Web3AuthNoModal, LOGIN_MODE, cloneDeep, WALLET_CONNECTORS, log, CONNECTOR_STATUS, CONNECTED_STATUSES, CONNECTOR_INITIAL_AUTHENTICATION_MODE, sdkVersion, ANALYTICS_SDK_TYPE, withAbort, CONNECTOR_EVENTS, ANALYTICS_EVENTS, getErrorAnalyticsProperties, WalletInitializationError, AccountLinkingError, fetchProjectConfig, fetchWalletRegistry, WALLET_REGISTRY_URL, CONNECTOR_CATEGORY, CONNECTOR_NAMES, CONNECTOR_NAMESPACES, Web3AuthError, WalletLoginError } from '@web3auth/no-modal';
|
|
5
5
|
import deepmerge from 'deepmerge';
|
|
6
6
|
import { defaultConnectorsModalConfig } from './config.js';
|
|
7
7
|
import { AUTH_PROVIDERS_NAMES, AUTH_PROVIDERS, capitalizeFirstLetter } from './ui/config.js';
|
|
8
|
-
import { LOGIN_MODAL_EVENTS } from './ui/interfaces.js';
|
|
8
|
+
import { LOGIN_MODAL_EVENTS, ACCOUNT_LINKING_INTENT, ACCOUNT_LINKING_STATUS } from './ui/interfaces.js';
|
|
9
9
|
import { LoginModal } from './ui/loginModal.js';
|
|
10
10
|
import { getUserLanguage } from './ui/utils.js';
|
|
11
11
|
|
|
@@ -13,8 +13,13 @@ class Web3Auth extends Web3AuthNoModal {
|
|
|
13
13
|
constructor(options, initialState) {
|
|
14
14
|
super(options, initialState);
|
|
15
15
|
_defineProperty(this, "loginModal", void 0);
|
|
16
|
+
_defineProperty(this, "loginMode", LOGIN_MODE.MODAL);
|
|
16
17
|
_defineProperty(this, "options", void 0);
|
|
17
18
|
_defineProperty(this, "modalConfig", cloneDeep(defaultConnectorsModalConfig));
|
|
19
|
+
_defineProperty(this, "removeAccountLinkingConnectorListeners", null);
|
|
20
|
+
_defineProperty(this, "removeAccountLinkingResetOnCloseListener", null);
|
|
21
|
+
_defineProperty(this, "accountLinkingPickerResolver", null);
|
|
22
|
+
_defineProperty(this, "removeAccountLinkingPickerCloseListener", null);
|
|
18
23
|
_defineProperty(this, "onInitExternalWallets", async params => {
|
|
19
24
|
if (params.externalWalletsInitialized) return;
|
|
20
25
|
// initialize WC connector only as other external wallets are initialized in initModal
|
|
@@ -27,10 +32,17 @@ class Web3Auth extends Web3AuthNoModal {
|
|
|
27
32
|
try {
|
|
28
33
|
await this.connectTo(WALLET_CONNECTORS.AUTH, params.loginParams, LOGIN_MODE.MODAL);
|
|
29
34
|
} catch (error) {
|
|
30
|
-
log.error(
|
|
35
|
+
log.error("Error while connecting via social login (AUTH)", error);
|
|
31
36
|
}
|
|
32
37
|
});
|
|
33
38
|
_defineProperty(this, "onExternalWalletLogin", async params => {
|
|
39
|
+
// If the modal is in account-linking picker mode, hand off the selected connector
|
|
40
|
+
// to the linking flow instead of running the regular login `connectTo`.
|
|
41
|
+
if (this.accountLinkingPickerResolver) {
|
|
42
|
+
const resolver = this.accountLinkingPickerResolver;
|
|
43
|
+
resolver(params.connector);
|
|
44
|
+
return;
|
|
45
|
+
}
|
|
34
46
|
try {
|
|
35
47
|
var _params$loginParams;
|
|
36
48
|
const connector = this.getConnector(params.connector, (_params$loginParams = params.loginParams) === null || _params$loginParams === void 0 ? void 0 : _params$loginParams.chainNamespace);
|
|
@@ -49,8 +61,12 @@ class Web3Auth extends Web3AuthNoModal {
|
|
|
49
61
|
}
|
|
50
62
|
});
|
|
51
63
|
_defineProperty(this, "onModalVisibility", async visibility => {
|
|
64
|
+
var _this$loginModal;
|
|
52
65
|
log.debug("is login modal visible", visibility);
|
|
53
66
|
this.emit(LOGIN_MODAL_EVENTS.MODAL_VISIBILITY, visibility);
|
|
67
|
+
if ((_this$loginModal = this.loginModal) !== null && _this$loginModal !== void 0 && _this$loginModal.hasActiveAccountLinkingSession()) {
|
|
68
|
+
return;
|
|
69
|
+
}
|
|
54
70
|
|
|
55
71
|
// handle WC session refresh
|
|
56
72
|
const wcConnector = this.getConnector(WALLET_CONNECTORS.WALLET_CONNECT_V2);
|
|
@@ -79,18 +95,39 @@ class Web3Auth extends Web3AuthNoModal {
|
|
|
79
95
|
_defineProperty(this, "onMobileVerifyConnect", async params => {
|
|
80
96
|
try {
|
|
81
97
|
const connector = this.getConnector(params.connector);
|
|
82
|
-
await connector.
|
|
98
|
+
await connector.getAuthTokenInfo();
|
|
83
99
|
} catch (error) {
|
|
84
100
|
log.error(`Error while connecting to connector: ${params.connector}`, error);
|
|
85
101
|
}
|
|
86
102
|
});
|
|
103
|
+
_defineProperty(this, "onAcceptConsent", async () => {
|
|
104
|
+
try {
|
|
105
|
+
await this.acceptConsent();
|
|
106
|
+
} catch (error) {
|
|
107
|
+
log.error("Error while accepting consent", error);
|
|
108
|
+
}
|
|
109
|
+
});
|
|
110
|
+
_defineProperty(this, "onDeclineConsent", async () => {
|
|
111
|
+
try {
|
|
112
|
+
await this.logout();
|
|
113
|
+
} catch (error) {
|
|
114
|
+
log.error("Error while declining consent", error);
|
|
115
|
+
} finally {
|
|
116
|
+
this.loginModal.closeModal();
|
|
117
|
+
}
|
|
118
|
+
});
|
|
87
119
|
_defineProperty(this, "getChainNamespaces", () => {
|
|
88
120
|
var _this$coreOptions$cha;
|
|
89
121
|
return [...new Set(((_this$coreOptions$cha = this.coreOptions.chains) === null || _this$coreOptions$cha === void 0 ? void 0 : _this$coreOptions$cha.map(x => x.chainNamespace)) || [])];
|
|
90
122
|
});
|
|
91
123
|
this.options = _objectSpread({}, options);
|
|
124
|
+
if (!this.options.initialAuthenticationMode) {
|
|
125
|
+
this.options.initialAuthenticationMode = CONNECTOR_INITIAL_AUTHENTICATION_MODE.CONNECT_AND_SIGN;
|
|
126
|
+
}
|
|
92
127
|
if (!this.options.uiConfig) this.options.uiConfig = {};
|
|
93
128
|
if (this.options.modalConfig) this.modalConfig = this.options.modalConfig;
|
|
129
|
+
// consent required is true if the consent required is true and the privacy policy and tnc link are set
|
|
130
|
+
this.consentRequired = this.options.uiConfig.consentRequired && Boolean(this.options.uiConfig.privacyPolicy) && Boolean(this.options.uiConfig.tncLink) || false;
|
|
94
131
|
log.info("modalConfig", this.modalConfig);
|
|
95
132
|
}
|
|
96
133
|
async init(options) {
|
|
@@ -153,8 +190,11 @@ class Web3Auth extends Web3AuthNoModal {
|
|
|
153
190
|
onSocialLogin: this.onSocialLogin,
|
|
154
191
|
onExternalWalletLogin: this.onExternalWalletLogin,
|
|
155
192
|
onModalVisibility: this.onModalVisibility,
|
|
156
|
-
onMobileVerifyConnect: this.onMobileVerifyConnect
|
|
193
|
+
onMobileVerifyConnect: this.onMobileVerifyConnect,
|
|
194
|
+
onAcceptConsent: this.onAcceptConsent,
|
|
195
|
+
onDeclineConsent: this.onDeclineConsent
|
|
157
196
|
});
|
|
197
|
+
this.consentRequired = this.loginModal.consentRequired;
|
|
158
198
|
await withAbort(() => this.loginModal.initModal(), signal);
|
|
159
199
|
|
|
160
200
|
// setup common JRPC provider
|
|
@@ -208,41 +248,179 @@ class Web3Auth extends Web3AuthNoModal {
|
|
|
208
248
|
}
|
|
209
249
|
async connect() {
|
|
210
250
|
if (!this.loginModal) throw WalletInitializationError.notReady("Login modal is not initialized");
|
|
211
|
-
// if already connected return
|
|
212
|
-
if (
|
|
251
|
+
// if already connected return connection
|
|
252
|
+
if (CONNECTED_STATUSES.includes(this.status) && this.connection) return this.connection;
|
|
213
253
|
this.loginModal.open();
|
|
214
254
|
return new Promise((resolve, reject) => {
|
|
255
|
+
// track connection started event
|
|
256
|
+
const startTime = Date.now();
|
|
215
257
|
// remove all listeners when promise is resolved or rejected.
|
|
216
258
|
// this is to prevent memory leaks if user clicks connect button multiple times.
|
|
217
|
-
const
|
|
259
|
+
const handleCompletion = () => {
|
|
218
260
|
this.removeListener(CONNECTOR_EVENTS.ERRORED, handleError);
|
|
219
261
|
this.removeListener(LOGIN_MODAL_EVENTS.MODAL_VISIBILITY, handleVisibility);
|
|
220
|
-
|
|
262
|
+
if (this.coreOptions.initialAuthenticationMode === CONNECTOR_INITIAL_AUTHENTICATION_MODE.CONNECT_AND_SIGN) {
|
|
263
|
+
this.removeListener(CONNECTOR_EVENTS.AUTHORIZED, handleCompletion);
|
|
264
|
+
} else {
|
|
265
|
+
this.removeListener(CONNECTOR_EVENTS.CONNECTED, handleCompletion);
|
|
266
|
+
}
|
|
267
|
+
return resolve(this.connection);
|
|
268
|
+
};
|
|
269
|
+
const handleConsentAccepted = async () => {
|
|
270
|
+
try {
|
|
271
|
+
var _this$primaryConnecto;
|
|
272
|
+
// track connection completed event
|
|
273
|
+
const userInfo = await this.getUserInfo();
|
|
274
|
+
// TODO: correct event data
|
|
275
|
+
this.analytics.track(ANALYTICS_EVENTS.CONNECTION_COMPLETED, {
|
|
276
|
+
connector: (_this$primaryConnecto = this.primaryConnector) === null || _this$primaryConnecto === void 0 ? void 0 : _this$primaryConnecto.name,
|
|
277
|
+
is_mfa_enabled: userInfo === null || userInfo === void 0 ? void 0 : userInfo.isMfaEnabled,
|
|
278
|
+
duration: Date.now() - startTime
|
|
279
|
+
});
|
|
280
|
+
} catch (error) {
|
|
281
|
+
log.error("Failed to track connection completed event after consent acceptance", error);
|
|
282
|
+
}
|
|
283
|
+
handleCompletion();
|
|
221
284
|
};
|
|
222
285
|
const handleError = err => {
|
|
223
|
-
this.removeListener(CONNECTOR_EVENTS.CONNECTED,
|
|
224
|
-
this.removeListener(CONNECTOR_EVENTS.AUTHORIZED,
|
|
286
|
+
this.removeListener(CONNECTOR_EVENTS.CONNECTED, handleCompletion);
|
|
287
|
+
this.removeListener(CONNECTOR_EVENTS.AUTHORIZED, handleCompletion);
|
|
225
288
|
this.removeListener(LOGIN_MODAL_EVENTS.MODAL_VISIBILITY, handleVisibility);
|
|
226
289
|
return reject(err);
|
|
227
290
|
};
|
|
228
291
|
const handleVisibility = visibility => {
|
|
229
292
|
// modal is closed but user is not connected to any wallet.
|
|
230
293
|
if (!visibility && !CONNECTED_STATUSES.includes(this.status)) {
|
|
231
|
-
this.removeListener(CONNECTOR_EVENTS.CONNECTED,
|
|
294
|
+
this.removeListener(CONNECTOR_EVENTS.CONNECTED, handleCompletion);
|
|
232
295
|
this.removeListener(CONNECTOR_EVENTS.ERRORED, handleError);
|
|
233
|
-
this.removeListener(CONNECTOR_EVENTS.AUTHORIZED,
|
|
296
|
+
this.removeListener(CONNECTOR_EVENTS.AUTHORIZED, handleCompletion);
|
|
234
297
|
return reject(new Error("User closed the modal"));
|
|
235
298
|
}
|
|
236
299
|
};
|
|
300
|
+
if (this.consentRequired) {
|
|
301
|
+
this.once(CONNECTOR_EVENTS.CONSENT_ACCEPTED, handleConsentAccepted);
|
|
302
|
+
}
|
|
237
303
|
if (this.coreOptions.initialAuthenticationMode === CONNECTOR_INITIAL_AUTHENTICATION_MODE.CONNECT_AND_SIGN) {
|
|
238
|
-
this.once(CONNECTOR_EVENTS.AUTHORIZED,
|
|
304
|
+
this.once(CONNECTOR_EVENTS.AUTHORIZED, handleCompletion);
|
|
239
305
|
} else {
|
|
240
|
-
this.once(CONNECTOR_EVENTS.CONNECTED,
|
|
306
|
+
this.once(CONNECTOR_EVENTS.CONNECTED, handleCompletion);
|
|
241
307
|
}
|
|
242
308
|
this.once(CONNECTOR_EVENTS.ERRORED, handleError);
|
|
243
309
|
this.once(LOGIN_MODAL_EVENTS.MODAL_VISIBILITY, handleVisibility);
|
|
244
310
|
});
|
|
245
311
|
}
|
|
312
|
+
async acceptConsent() {
|
|
313
|
+
await super.completeConsentAcceptance();
|
|
314
|
+
}
|
|
315
|
+
async switchAccount(account) {
|
|
316
|
+
const authConnector = this.getMainAuthConnector();
|
|
317
|
+
const switchResult = await authConnector.switchAccount(account, {
|
|
318
|
+
activeAccount: this.activeAccount,
|
|
319
|
+
currentChainId: this.currentChainId
|
|
320
|
+
});
|
|
321
|
+
if (!switchResult) {
|
|
322
|
+
return;
|
|
323
|
+
}
|
|
324
|
+
try {
|
|
325
|
+
var _await$this$getProjec;
|
|
326
|
+
const existingConnector = switchResult.kind === "external" ? this.getConnectedWalletConnector(switchResult.targetAccount) : null;
|
|
327
|
+
// check if the existing connector is connected and usable, then we can switch to it without re-connecting again
|
|
328
|
+
const isExistingConnectorConnected = Boolean(existingConnector && this.hasUsableConnectedSwitchConnector(existingConnector));
|
|
329
|
+
const projectConfig = switchResult.kind === "external" && !isExistingConnectorConnected ? (_await$this$getProjec = await this.getProjectAndWalletConfig()) === null || _await$this$getProjec === void 0 ? void 0 : _await$this$getProjec.projectConfig : undefined;
|
|
330
|
+
if (switchResult.kind !== "external" || isExistingConnectorConnected) {
|
|
331
|
+
await this.runNonWalletConnectAccountAction(switchResult.targetAccount.connector, () => super.processSwitchAccountResult(authConnector, switchResult, {
|
|
332
|
+
walletConnector: isExistingConnectorConnected && existingConnector ? existingConnector : undefined,
|
|
333
|
+
projectConfig
|
|
334
|
+
}), {
|
|
335
|
+
skipSuccessScreen: true
|
|
336
|
+
});
|
|
337
|
+
await authConnector.trackSwitchAccountCompleted(switchResult.targetAccount);
|
|
338
|
+
return;
|
|
339
|
+
}
|
|
340
|
+
const connectorToSwitchTo = await this.prepareAccountSwitchConnector(switchResult.targetAccount.connector, switchResult.activeChainId, projectConfig);
|
|
341
|
+
if (connectorToSwitchTo.name !== WALLET_CONNECTORS.WALLET_CONNECT_V2) {
|
|
342
|
+
await this.runNonWalletConnectAccountAction(switchResult.targetAccount.connector, () => super.processSwitchAccountResult(authConnector, switchResult, {
|
|
343
|
+
walletConnector: connectorToSwitchTo,
|
|
344
|
+
projectConfig
|
|
345
|
+
}), {
|
|
346
|
+
skipSuccessScreen: true
|
|
347
|
+
});
|
|
348
|
+
await authConnector.trackSwitchAccountCompleted(switchResult.targetAccount);
|
|
349
|
+
return;
|
|
350
|
+
}
|
|
351
|
+
await this.switchToWalletConnectV2Account(switchResult, connectorToSwitchTo, projectConfig);
|
|
352
|
+
} catch (error) {
|
|
353
|
+
await authConnector.trackSwitchAccountFailed(switchResult.targetAccount, error);
|
|
354
|
+
throw error;
|
|
355
|
+
}
|
|
356
|
+
}
|
|
357
|
+
async linkAccount(params) {
|
|
358
|
+
// Pre-flight: ensure user is connected via AUTH so we fail fast before opening the modal.
|
|
359
|
+
this.getMainAuthConnector();
|
|
360
|
+
const chainId = this.resolveLinkAccountChainId(params === null || params === void 0 ? void 0 : params.chainId);
|
|
361
|
+
if (!(params !== null && params !== void 0 && params.connectorName)) {
|
|
362
|
+
const pickedConnector = await this.pickWalletForAccountLinking(chainId);
|
|
363
|
+
return this.linkAccountWithChosenConnector(pickedConnector, chainId);
|
|
364
|
+
}
|
|
365
|
+
return this.linkAccountWithChosenConnector(params.connectorName, chainId);
|
|
366
|
+
}
|
|
367
|
+
startAccountLinkingModalSession(params) {
|
|
368
|
+
if (!this.loginModal) throw WalletInitializationError.notReady("Login modal is not initialized");
|
|
369
|
+
this.loginModal.startAccountLinkingSession(params);
|
|
370
|
+
}
|
|
371
|
+
updateAccountLinkingModalSession(accountLinking) {
|
|
372
|
+
if (!this.loginModal) throw WalletInitializationError.notReady("Login modal is not initialized");
|
|
373
|
+
this.loginModal.updateAccountLinkingState(accountLinking);
|
|
374
|
+
}
|
|
375
|
+
resetAccountLinkingModalSession() {
|
|
376
|
+
if (!this.loginModal) throw WalletInitializationError.notReady("Login modal is not initialized");
|
|
377
|
+
this.loginModal.resetAccountLinkingSession();
|
|
378
|
+
}
|
|
379
|
+
formatAccountLinkingErrorMessage(error) {
|
|
380
|
+
if (error instanceof AccountLinkingError) {
|
|
381
|
+
const isUnlink = error.code >= 5406 && error.code <= 5408;
|
|
382
|
+
return isUnlink ? `[${error.code}] Account unlinking failed` : `[${error.code}] Account linking failed`;
|
|
383
|
+
}
|
|
384
|
+
return error === null || error === void 0 ? void 0 : error.message;
|
|
385
|
+
}
|
|
386
|
+
async prepareAccountLinkingConnector(connectorName, chainId) {
|
|
387
|
+
const {
|
|
388
|
+
projectConfig
|
|
389
|
+
} = await this.getProjectAndWalletConfig();
|
|
390
|
+
const connector = await super.createLinkingWalletConnector(connectorName, chainId, projectConfig);
|
|
391
|
+
if (connector.name !== WALLET_CONNECTORS.WALLET_CONNECT_V2) {
|
|
392
|
+
return connector;
|
|
393
|
+
}
|
|
394
|
+
if (!this.loginModal) throw WalletInitializationError.notReady("Login modal is not initialized");
|
|
395
|
+
this.clearAccountLinkingConnectorListeners();
|
|
396
|
+
this.removeAccountLinkingConnectorListeners = this.subscribeToAccountLinkingConnectorEvents(connector);
|
|
397
|
+
this.startAccountLinkingModalSession({
|
|
398
|
+
connectorName,
|
|
399
|
+
transportConnectorName: connector.name,
|
|
400
|
+
chainId,
|
|
401
|
+
intent: ACCOUNT_LINKING_INTENT.LINK
|
|
402
|
+
});
|
|
403
|
+
this.loginModal.open();
|
|
404
|
+
return connector;
|
|
405
|
+
}
|
|
406
|
+
async prepareAccountSwitchConnector(connectorName, chainId, projectConfig) {
|
|
407
|
+
const finalProjectConfig = projectConfig !== null && projectConfig !== void 0 ? projectConfig : (await this.getProjectAndWalletConfig()).projectConfig;
|
|
408
|
+
const connector = await super.createSwitchingWalletConnector(connectorName, chainId, finalProjectConfig);
|
|
409
|
+
if (connector.name !== WALLET_CONNECTORS.WALLET_CONNECT_V2) {
|
|
410
|
+
return connector;
|
|
411
|
+
}
|
|
412
|
+
if (!this.loginModal) throw WalletInitializationError.notReady("Login modal is not initialized");
|
|
413
|
+
this.clearAccountLinkingConnectorListeners();
|
|
414
|
+
this.removeAccountLinkingConnectorListeners = this.subscribeToAccountLinkingConnectorEvents(connector);
|
|
415
|
+
this.startAccountLinkingModalSession({
|
|
416
|
+
connectorName,
|
|
417
|
+
transportConnectorName: connector.name,
|
|
418
|
+
chainId,
|
|
419
|
+
intent: ACCOUNT_LINKING_INTENT.SWITCH
|
|
420
|
+
});
|
|
421
|
+
this.loginModal.open();
|
|
422
|
+
return connector;
|
|
423
|
+
}
|
|
246
424
|
initUIConfig(projectConfig) {
|
|
247
425
|
super.initUIConfig(projectConfig);
|
|
248
426
|
this.options.uiConfig = deepmerge(cloneDeep(projectConfig.whitelabel || {}), this.options.uiConfig || {});
|
|
@@ -551,7 +729,7 @@ class Web3Auth extends Web3AuthNoModal {
|
|
|
551
729
|
await connector.init({
|
|
552
730
|
autoConnect,
|
|
553
731
|
chainId: initialChain.chainId,
|
|
554
|
-
|
|
732
|
+
getAuthTokenInfo: this.options.initialAuthenticationMode === CONNECTOR_INITIAL_AUTHENTICATION_MODE.CONNECT_AND_SIGN
|
|
555
733
|
});
|
|
556
734
|
|
|
557
735
|
// note: not adding cachedWallet to modal if it is external wallet.
|
|
@@ -560,7 +738,7 @@ class Web3Auth extends Web3AuthNoModal {
|
|
|
560
738
|
var _this$modalConfig$con6, _this$options$uiConfi13, _this$options$uiConfi14, _this$options$uiConfi15;
|
|
561
739
|
log.info("connectorInitResults", connectorName);
|
|
562
740
|
const loginMethods = ((_this$modalConfig$con6 = this.modalConfig.connectors[connectorName]) === null || _this$modalConfig$con6 === void 0 ? void 0 : _this$modalConfig$con6.loginMethods) || {};
|
|
563
|
-
this.loginModal.addSocialLogins(
|
|
741
|
+
this.loginModal.addSocialLogins(loginMethods, ((_this$options$uiConfi13 = this.options.uiConfig) === null || _this$options$uiConfi13 === void 0 ? void 0 : _this$options$uiConfi13.loginMethodsOrder) || AUTH_PROVIDERS, _objectSpread(_objectSpread({}, this.options.uiConfig), {}, {
|
|
564
742
|
loginGridCol: ((_this$options$uiConfi14 = this.options.uiConfig) === null || _this$options$uiConfi14 === void 0 ? void 0 : _this$options$uiConfi14.loginGridCol) || 3,
|
|
565
743
|
primaryButton: ((_this$options$uiConfi15 = this.options.uiConfig) === null || _this$options$uiConfi15 === void 0 ? void 0 : _this$options$uiConfi15.primaryButton) || "socialLogin"
|
|
566
744
|
}));
|
|
@@ -576,6 +754,7 @@ class Web3Auth extends Web3AuthNoModal {
|
|
|
576
754
|
|
|
577
755
|
// we do it like this because we don't want one slow connector to delay the load of the entire external wallet section.
|
|
578
756
|
externalConnectors.forEach(async connector => {
|
|
757
|
+
var _this$connection;
|
|
579
758
|
const connectorName = connector.name;
|
|
580
759
|
log.debug("init external wallet", this.cachedConnector, connectorName, connector.status);
|
|
581
760
|
|
|
@@ -589,14 +768,14 @@ class Web3Auth extends Web3AuthNoModal {
|
|
|
589
768
|
|
|
590
769
|
// initialize connectors
|
|
591
770
|
// skip initializing cached connector here as it is already being initialized in initModal before.
|
|
592
|
-
if (connector.status === CONNECTOR_STATUS.NOT_READY && this.cachedConnector !== connectorName) {
|
|
771
|
+
if (connector.status === CONNECTOR_STATUS.NOT_READY && this.cachedConnector !== connectorName && ((_this$connection = this.connection) === null || _this$connection === void 0 ? void 0 : _this$connection.connectorName) !== connectorName) {
|
|
593
772
|
try {
|
|
594
773
|
this.subscribeToConnectorEvents(connector);
|
|
595
774
|
const initialChain = this.getInitialChainIdForConnector(connector);
|
|
596
775
|
await connector.init({
|
|
597
776
|
autoConnect: this.cachedConnector === connectorName,
|
|
598
777
|
chainId: initialChain.chainId,
|
|
599
|
-
|
|
778
|
+
getAuthTokenInfo: this.options.initialAuthenticationMode === CONNECTOR_INITIAL_AUTHENTICATION_MODE.CONNECT_AND_SIGN
|
|
600
779
|
});
|
|
601
780
|
} catch (error) {
|
|
602
781
|
log.error(error, "error while initializing connector", connectorName);
|
|
@@ -619,6 +798,286 @@ class Web3Auth extends Web3AuthNoModal {
|
|
|
619
798
|
}
|
|
620
799
|
});
|
|
621
800
|
}
|
|
801
|
+
async switchToWalletConnectV2Account(switchResult, connectorToSwitchTo, projectConfig) {
|
|
802
|
+
const authConnector = this.getMainAuthConnector();
|
|
803
|
+
try {
|
|
804
|
+
await this.runWalletConnectV2AccountAction({
|
|
805
|
+
connector: connectorToSwitchTo,
|
|
806
|
+
connectParams: {
|
|
807
|
+
chainId: switchResult.activeChainId
|
|
808
|
+
},
|
|
809
|
+
onConnected: async connector => {
|
|
810
|
+
await super.processSwitchAccountResult(authConnector, switchResult, {
|
|
811
|
+
walletConnector: connector,
|
|
812
|
+
projectConfig
|
|
813
|
+
});
|
|
814
|
+
await authConnector.trackSwitchAccountCompleted(switchResult.targetAccount);
|
|
815
|
+
return {
|
|
816
|
+
result: undefined,
|
|
817
|
+
retainConnector: true
|
|
818
|
+
};
|
|
819
|
+
},
|
|
820
|
+
intent: ACCOUNT_LINKING_INTENT.SWITCH
|
|
821
|
+
});
|
|
822
|
+
} catch (error) {
|
|
823
|
+
await authConnector.trackSwitchAccountFailed(switchResult.targetAccount, error);
|
|
824
|
+
throw error;
|
|
825
|
+
}
|
|
826
|
+
}
|
|
827
|
+
|
|
828
|
+
/**
|
|
829
|
+
* Runs a link/switch action for WalletConnect v2, racing connector.connect()
|
|
830
|
+
* against a modal-close promise to cancel and clean up the WC session if the
|
|
831
|
+
* user closes the modal during QR scanning.
|
|
832
|
+
* For synchronous connectors use {@link runNonWalletConnectAccountAction}.
|
|
833
|
+
*/
|
|
834
|
+
async runWalletConnectV2AccountAction(params) {
|
|
835
|
+
if (!this.loginModal) throw WalletInitializationError.notReady("Login modal is not initialized");
|
|
836
|
+
this.clearAccountLinkingResetOnCloseListener();
|
|
837
|
+
let retainConnector = false;
|
|
838
|
+
let connectCancelled = false;
|
|
839
|
+
let removeConnectPhaseVisibilityListener = () => {};
|
|
840
|
+
const closeDuringConnectPromise = new Promise((_resolve, reject) => {
|
|
841
|
+
const handleVisibility = visibility => {
|
|
842
|
+
if (!visibility) {
|
|
843
|
+
connectCancelled = true;
|
|
844
|
+
reject(WalletLoginError.popupClosed("User closed the modal"));
|
|
845
|
+
}
|
|
846
|
+
};
|
|
847
|
+
this.on(LOGIN_MODAL_EVENTS.MODAL_VISIBILITY, handleVisibility);
|
|
848
|
+
removeConnectPhaseVisibilityListener = () => {
|
|
849
|
+
this.removeListener(LOGIN_MODAL_EVENTS.MODAL_VISIBILITY, handleVisibility);
|
|
850
|
+
};
|
|
851
|
+
});
|
|
852
|
+
const connector = params.connector;
|
|
853
|
+
const connectPromise = connector.connect(params.connectParams);
|
|
854
|
+
void connectPromise.then(async connection => {
|
|
855
|
+
if (!connectCancelled || !connection || !connector.connected || retainConnector) return undefined;
|
|
856
|
+
try {
|
|
857
|
+
await connector.disconnect({
|
|
858
|
+
cleanup: true
|
|
859
|
+
});
|
|
860
|
+
} catch (error) {
|
|
861
|
+
log.debug("Failed to disconnect cancelled WalletConnect connector during cleanup", error);
|
|
862
|
+
}
|
|
863
|
+
return undefined;
|
|
864
|
+
}).catch(() => {});
|
|
865
|
+
try {
|
|
866
|
+
const connection = await Promise.race([connectPromise, closeDuringConnectPromise]);
|
|
867
|
+
if (!connection) {
|
|
868
|
+
throw AccountLinkingError.requestFailed("Failed to connect wallet.");
|
|
869
|
+
}
|
|
870
|
+
removeConnectPhaseVisibilityListener();
|
|
871
|
+
this.updateAccountLinkingModalSession({
|
|
872
|
+
status: ACCOUNT_LINKING_STATUS.LINKING,
|
|
873
|
+
intent: params.intent,
|
|
874
|
+
walletConnectUri: "",
|
|
875
|
+
errorMessage: ""
|
|
876
|
+
});
|
|
877
|
+
const {
|
|
878
|
+
result,
|
|
879
|
+
retainConnector: shouldRetainConnector = false
|
|
880
|
+
} = await params.onConnected(connector, connection);
|
|
881
|
+
retainConnector = shouldRetainConnector;
|
|
882
|
+
this.resetAccountLinkingModalSession();
|
|
883
|
+
this.loginModal.endConnectingLoader({
|
|
884
|
+
success: true,
|
|
885
|
+
successMessage: "",
|
|
886
|
+
skipSuccessScreen: params.intent === ACCOUNT_LINKING_INTENT.SWITCH
|
|
887
|
+
});
|
|
888
|
+
return result;
|
|
889
|
+
} catch (error) {
|
|
890
|
+
const isPopupClosed = error instanceof Web3AuthError && error.code === 5114;
|
|
891
|
+
if (isPopupClosed) {
|
|
892
|
+
this.resetAccountLinkingModalSession();
|
|
893
|
+
} else {
|
|
894
|
+
const fallbackMessage = params.intent === ACCOUNT_LINKING_INTENT.SWITCH ? "Failed to switch wallet." : undefined;
|
|
895
|
+
const errorMessage = this.formatAccountLinkingErrorMessage(error) || fallbackMessage;
|
|
896
|
+
this.resetAccountLinkingModalSession();
|
|
897
|
+
this.loginModal.endConnectingLoader({
|
|
898
|
+
success: false,
|
|
899
|
+
errorMessage
|
|
900
|
+
});
|
|
901
|
+
}
|
|
902
|
+
this.installAccountLinkingResetOnCloseListener();
|
|
903
|
+
throw error;
|
|
904
|
+
} finally {
|
|
905
|
+
removeConnectPhaseVisibilityListener();
|
|
906
|
+
this.clearAccountLinkingConnectorListeners();
|
|
907
|
+
try {
|
|
908
|
+
if (!retainConnector && connector.connected) {
|
|
909
|
+
await connector.disconnect({
|
|
910
|
+
cleanup: true
|
|
911
|
+
});
|
|
912
|
+
}
|
|
913
|
+
} catch (error) {
|
|
914
|
+
log.debug("Failed to disconnect WalletConnect connector during cleanup", error);
|
|
915
|
+
}
|
|
916
|
+
}
|
|
917
|
+
}
|
|
918
|
+
async linkAccountWithChosenConnector(connectorName, chainId) {
|
|
919
|
+
const connectorToLink = await this.prepareAccountLinkingConnector(connectorName, chainId);
|
|
920
|
+
if (connectorToLink.name !== WALLET_CONNECTORS.WALLET_CONNECT_V2) {
|
|
921
|
+
return this.runNonWalletConnectAccountAction(connectorName, () => super.linkAccountWithConnector(connectorName, chainId, connectorToLink), {
|
|
922
|
+
connector: connectorToLink
|
|
923
|
+
});
|
|
924
|
+
}
|
|
925
|
+
return this.runWalletConnectV2AccountAction({
|
|
926
|
+
connector: connectorToLink,
|
|
927
|
+
connectParams: {
|
|
928
|
+
chainId,
|
|
929
|
+
isAccountLinking: true
|
|
930
|
+
},
|
|
931
|
+
onConnected: async connector => ({
|
|
932
|
+
result: await super.linkAccountWithConnector(connectorName, chainId, connector)
|
|
933
|
+
}),
|
|
934
|
+
intent: ACCOUNT_LINKING_INTENT.LINK
|
|
935
|
+
});
|
|
936
|
+
}
|
|
937
|
+
pickWalletForAccountLinking(chainId) {
|
|
938
|
+
if (!this.loginModal) throw WalletInitializationError.notReady("Login modal is not initialized");
|
|
939
|
+
if (this.accountLinkingPickerResolver) {
|
|
940
|
+
throw AccountLinkingError.requestFailed("Another account linking picker is already in progress.");
|
|
941
|
+
}
|
|
942
|
+
this.loginModal.startAccountLinkingPicker({
|
|
943
|
+
chainId
|
|
944
|
+
});
|
|
945
|
+
return new Promise((resolve, reject) => {
|
|
946
|
+
const cleanup = () => {
|
|
947
|
+
this.accountLinkingPickerResolver = null;
|
|
948
|
+
if (this.removeAccountLinkingPickerCloseListener) {
|
|
949
|
+
this.removeAccountLinkingPickerCloseListener();
|
|
950
|
+
this.removeAccountLinkingPickerCloseListener = null;
|
|
951
|
+
}
|
|
952
|
+
this.loginModal.endAccountLinkingPicker();
|
|
953
|
+
};
|
|
954
|
+
const handleVisibility = visible => {
|
|
955
|
+
if (visible) return;
|
|
956
|
+
cleanup();
|
|
957
|
+
reject(WalletLoginError.popupClosed("User closed the modal"));
|
|
958
|
+
};
|
|
959
|
+
this.accountLinkingPickerResolver = connector => {
|
|
960
|
+
cleanup();
|
|
961
|
+
resolve(connector);
|
|
962
|
+
};
|
|
963
|
+
this.on(LOGIN_MODAL_EVENTS.MODAL_VISIBILITY, handleVisibility);
|
|
964
|
+
this.removeAccountLinkingPickerCloseListener = () => {
|
|
965
|
+
this.removeListener(LOGIN_MODAL_EVENTS.MODAL_VISIBILITY, handleVisibility);
|
|
966
|
+
};
|
|
967
|
+
});
|
|
968
|
+
}
|
|
969
|
+
|
|
970
|
+
/**
|
|
971
|
+
* Runs a link/switch action for synchronous connectors (injected wallets, already-connected).
|
|
972
|
+
* Shows the connecting loader, forwards AUTHORIZING events to the modal, and
|
|
973
|
+
* resolves/rejects the loader on completion.
|
|
974
|
+
* For WalletConnect v2 use {@link runWalletConnectV2AccountAction}.
|
|
975
|
+
*/
|
|
976
|
+
async runNonWalletConnectAccountAction(connectorName, fn, options = {}) {
|
|
977
|
+
if (!this.loginModal) throw WalletInitializationError.notReady("Login modal is not initialized");
|
|
978
|
+
const displayName = CONNECTOR_NAMES[connectorName] || connectorName;
|
|
979
|
+
this.loginModal.startConnectingLoader({
|
|
980
|
+
connector: connectorName,
|
|
981
|
+
connectorName: displayName
|
|
982
|
+
});
|
|
983
|
+
|
|
984
|
+
// Forward the AUTHORIZING event from the linking wallet connector to the modal so we can
|
|
985
|
+
// swap the loader from "connecting" to "authorizing" while the user reviews the signature
|
|
986
|
+
// request inside their wallet.
|
|
987
|
+
const handleAuthorizing = () => {
|
|
988
|
+
var _this$loginModal2;
|
|
989
|
+
return (_this$loginModal2 = this.loginModal) === null || _this$loginModal2 === void 0 ? void 0 : _this$loginModal2.markLoaderAuthorizing();
|
|
990
|
+
};
|
|
991
|
+
if (options.connector) {
|
|
992
|
+
options.connector.on(CONNECTOR_EVENTS.AUTHORIZING, handleAuthorizing);
|
|
993
|
+
}
|
|
994
|
+
try {
|
|
995
|
+
const result = await fn();
|
|
996
|
+
this.resetAccountLinkingModalSession();
|
|
997
|
+
this.loginModal.endConnectingLoader({
|
|
998
|
+
success: true,
|
|
999
|
+
skipSuccessScreen: options.skipSuccessScreen
|
|
1000
|
+
});
|
|
1001
|
+
return result;
|
|
1002
|
+
} catch (error) {
|
|
1003
|
+
const message = this.formatAccountLinkingErrorMessage(error);
|
|
1004
|
+
this.resetAccountLinkingModalSession();
|
|
1005
|
+
this.loginModal.endConnectingLoader({
|
|
1006
|
+
success: false,
|
|
1007
|
+
errorMessage: message
|
|
1008
|
+
});
|
|
1009
|
+
throw error;
|
|
1010
|
+
} finally {
|
|
1011
|
+
if (options.connector) {
|
|
1012
|
+
options.connector.removeListener(CONNECTOR_EVENTS.AUTHORIZING, handleAuthorizing);
|
|
1013
|
+
}
|
|
1014
|
+
}
|
|
1015
|
+
}
|
|
1016
|
+
subscribeToAccountLinkingConnectorEvents(connector) {
|
|
1017
|
+
const handleConnecting = () => {
|
|
1018
|
+
this.updateAccountLinkingModalSession({
|
|
1019
|
+
status: ACCOUNT_LINKING_STATUS.AWAITING_CONNECTION,
|
|
1020
|
+
errorMessage: ""
|
|
1021
|
+
});
|
|
1022
|
+
};
|
|
1023
|
+
const handleConnectorDataUpdated = connectorData => {
|
|
1024
|
+
if (connectorData.connectorName !== WALLET_CONNECTORS.WALLET_CONNECT_V2) return;
|
|
1025
|
+
const walletConnectData = connectorData.data;
|
|
1026
|
+
if (!walletConnectData.uri) return;
|
|
1027
|
+
this.updateAccountLinkingModalSession({
|
|
1028
|
+
walletConnectUri: walletConnectData.uri,
|
|
1029
|
+
status: ACCOUNT_LINKING_STATUS.AWAITING_CONNECTION,
|
|
1030
|
+
errorMessage: ""
|
|
1031
|
+
});
|
|
1032
|
+
};
|
|
1033
|
+
const handleConnected = _data => {
|
|
1034
|
+
this.updateAccountLinkingModalSession({
|
|
1035
|
+
status: ACCOUNT_LINKING_STATUS.WALLET_CONNECTED,
|
|
1036
|
+
walletConnectUri: "",
|
|
1037
|
+
errorMessage: ""
|
|
1038
|
+
});
|
|
1039
|
+
};
|
|
1040
|
+
const handleErrored = error => {
|
|
1041
|
+
this.updateAccountLinkingModalSession({
|
|
1042
|
+
status: ACCOUNT_LINKING_STATUS.ERRORED,
|
|
1043
|
+
errorMessage: error.message || "Failed to connect wallet."
|
|
1044
|
+
});
|
|
1045
|
+
};
|
|
1046
|
+
connector.on(CONNECTOR_EVENTS.CONNECTING, handleConnecting);
|
|
1047
|
+
connector.on(CONNECTOR_EVENTS.CONNECTOR_DATA_UPDATED, handleConnectorDataUpdated);
|
|
1048
|
+
connector.on(CONNECTOR_EVENTS.CONNECTED, handleConnected);
|
|
1049
|
+
connector.on(CONNECTOR_EVENTS.ERRORED, handleErrored);
|
|
1050
|
+
return () => {
|
|
1051
|
+
connector.removeListener(CONNECTOR_EVENTS.CONNECTING, handleConnecting);
|
|
1052
|
+
connector.removeListener(CONNECTOR_EVENTS.CONNECTOR_DATA_UPDATED, handleConnectorDataUpdated);
|
|
1053
|
+
connector.removeListener(CONNECTOR_EVENTS.CONNECTED, handleConnected);
|
|
1054
|
+
connector.removeListener(CONNECTOR_EVENTS.ERRORED, handleErrored);
|
|
1055
|
+
};
|
|
1056
|
+
}
|
|
1057
|
+
clearAccountLinkingConnectorListeners() {
|
|
1058
|
+
if (this.removeAccountLinkingConnectorListeners) {
|
|
1059
|
+
this.removeAccountLinkingConnectorListeners();
|
|
1060
|
+
this.removeAccountLinkingConnectorListeners = null;
|
|
1061
|
+
}
|
|
1062
|
+
}
|
|
1063
|
+
installAccountLinkingResetOnCloseListener() {
|
|
1064
|
+
this.clearAccountLinkingResetOnCloseListener();
|
|
1065
|
+
const handleVisibility = visibility => {
|
|
1066
|
+
if (visibility) return;
|
|
1067
|
+
this.resetAccountLinkingModalSession();
|
|
1068
|
+
this.clearAccountLinkingResetOnCloseListener();
|
|
1069
|
+
};
|
|
1070
|
+
this.on(LOGIN_MODAL_EVENTS.MODAL_VISIBILITY, handleVisibility);
|
|
1071
|
+
this.removeAccountLinkingResetOnCloseListener = () => {
|
|
1072
|
+
this.removeListener(LOGIN_MODAL_EVENTS.MODAL_VISIBILITY, handleVisibility);
|
|
1073
|
+
};
|
|
1074
|
+
}
|
|
1075
|
+
clearAccountLinkingResetOnCloseListener() {
|
|
1076
|
+
if (this.removeAccountLinkingResetOnCloseListener) {
|
|
1077
|
+
this.removeAccountLinkingResetOnCloseListener();
|
|
1078
|
+
this.removeAccountLinkingResetOnCloseListener = null;
|
|
1079
|
+
}
|
|
1080
|
+
}
|
|
622
1081
|
getCombinedConnectionId(authConnectionId, groupedAuthConnectionId) {
|
|
623
1082
|
let id = authConnectionId;
|
|
624
1083
|
if (groupedAuthConnectionId) {
|
|
@@ -1,13 +1,15 @@
|
|
|
1
1
|
import { createElement } from 'react';
|
|
2
2
|
import { WalletServicesContextProvider } from './context/WalletServicesInnerContext.js';
|
|
3
|
-
import { Web3AuthInnerProvider
|
|
3
|
+
import { Web3AuthInnerProvider } from './context/Web3AuthInnerContext.js';
|
|
4
|
+
import { Web3AuthInnerContext } from '@web3auth/no-modal/react';
|
|
4
5
|
|
|
5
6
|
function Web3AuthProvider({
|
|
6
7
|
config,
|
|
7
8
|
initialState,
|
|
8
9
|
children
|
|
9
10
|
}) {
|
|
10
|
-
const
|
|
11
|
+
const SharedWalletServicesContextProvider = WalletServicesContextProvider;
|
|
12
|
+
const pluginChild = /*#__PURE__*/createElement(SharedWalletServicesContextProvider, {
|
|
11
13
|
context: Web3AuthInnerContext
|
|
12
14
|
}, children);
|
|
13
15
|
return /*#__PURE__*/createElement(Web3AuthInnerProvider, {
|