@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
|
@@ -15,8 +15,13 @@ class Web3Auth extends noModal.Web3AuthNoModal {
|
|
|
15
15
|
constructor(options, initialState) {
|
|
16
16
|
super(options, initialState);
|
|
17
17
|
_defineProperty(this, "loginModal", void 0);
|
|
18
|
+
_defineProperty(this, "loginMode", noModal.LOGIN_MODE.MODAL);
|
|
18
19
|
_defineProperty(this, "options", void 0);
|
|
19
20
|
_defineProperty(this, "modalConfig", noModal.cloneDeep(config.defaultConnectorsModalConfig));
|
|
21
|
+
_defineProperty(this, "removeAccountLinkingConnectorListeners", null);
|
|
22
|
+
_defineProperty(this, "removeAccountLinkingResetOnCloseListener", null);
|
|
23
|
+
_defineProperty(this, "accountLinkingPickerResolver", null);
|
|
24
|
+
_defineProperty(this, "removeAccountLinkingPickerCloseListener", null);
|
|
20
25
|
_defineProperty(this, "onInitExternalWallets", async params => {
|
|
21
26
|
if (params.externalWalletsInitialized) return;
|
|
22
27
|
// initialize WC connector only as other external wallets are initialized in initModal
|
|
@@ -29,10 +34,17 @@ class Web3Auth extends noModal.Web3AuthNoModal {
|
|
|
29
34
|
try {
|
|
30
35
|
await this.connectTo(noModal.WALLET_CONNECTORS.AUTH, params.loginParams, noModal.LOGIN_MODE.MODAL);
|
|
31
36
|
} catch (error) {
|
|
32
|
-
noModal.log.error(
|
|
37
|
+
noModal.log.error("Error while connecting via social login (AUTH)", error);
|
|
33
38
|
}
|
|
34
39
|
});
|
|
35
40
|
_defineProperty(this, "onExternalWalletLogin", async params => {
|
|
41
|
+
// If the modal is in account-linking picker mode, hand off the selected connector
|
|
42
|
+
// to the linking flow instead of running the regular login `connectTo`.
|
|
43
|
+
if (this.accountLinkingPickerResolver) {
|
|
44
|
+
const resolver = this.accountLinkingPickerResolver;
|
|
45
|
+
resolver(params.connector);
|
|
46
|
+
return;
|
|
47
|
+
}
|
|
36
48
|
try {
|
|
37
49
|
var _params$loginParams;
|
|
38
50
|
const connector = this.getConnector(params.connector, (_params$loginParams = params.loginParams) === null || _params$loginParams === void 0 ? void 0 : _params$loginParams.chainNamespace);
|
|
@@ -51,8 +63,12 @@ class Web3Auth extends noModal.Web3AuthNoModal {
|
|
|
51
63
|
}
|
|
52
64
|
});
|
|
53
65
|
_defineProperty(this, "onModalVisibility", async visibility => {
|
|
66
|
+
var _this$loginModal;
|
|
54
67
|
noModal.log.debug("is login modal visible", visibility);
|
|
55
68
|
this.emit(interfaces.LOGIN_MODAL_EVENTS.MODAL_VISIBILITY, visibility);
|
|
69
|
+
if ((_this$loginModal = this.loginModal) !== null && _this$loginModal !== void 0 && _this$loginModal.hasActiveAccountLinkingSession()) {
|
|
70
|
+
return;
|
|
71
|
+
}
|
|
56
72
|
// handle WC session refresh
|
|
57
73
|
const wcConnector = this.getConnector(noModal.WALLET_CONNECTORS.WALLET_CONNECT_V2);
|
|
58
74
|
if (wcConnector) {
|
|
@@ -79,18 +95,39 @@ class Web3Auth extends noModal.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
|
noModal.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
|
+
noModal.log.error("Error while accepting consent", error);
|
|
108
|
+
}
|
|
109
|
+
});
|
|
110
|
+
_defineProperty(this, "onDeclineConsent", async () => {
|
|
111
|
+
try {
|
|
112
|
+
await this.logout();
|
|
113
|
+
} catch (error) {
|
|
114
|
+
noModal.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 = noModal.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
|
noModal.log.info("modalConfig", this.modalConfig);
|
|
95
132
|
}
|
|
96
133
|
async init(options) {
|
|
@@ -151,8 +188,11 @@ class Web3Auth extends noModal.Web3AuthNoModal {
|
|
|
151
188
|
onSocialLogin: this.onSocialLogin,
|
|
152
189
|
onExternalWalletLogin: this.onExternalWalletLogin,
|
|
153
190
|
onModalVisibility: this.onModalVisibility,
|
|
154
|
-
onMobileVerifyConnect: this.onMobileVerifyConnect
|
|
191
|
+
onMobileVerifyConnect: this.onMobileVerifyConnect,
|
|
192
|
+
onAcceptConsent: this.onAcceptConsent,
|
|
193
|
+
onDeclineConsent: this.onDeclineConsent
|
|
155
194
|
});
|
|
195
|
+
this.consentRequired = this.loginModal.consentRequired;
|
|
156
196
|
await noModal.withAbort(() => this.loginModal.initModal(), signal);
|
|
157
197
|
// setup common JRPC provider
|
|
158
198
|
await noModal.withAbort(() => this.setupCommonJRPCProvider(), signal);
|
|
@@ -201,41 +241,179 @@ class Web3Auth extends noModal.Web3AuthNoModal {
|
|
|
201
241
|
}
|
|
202
242
|
async connect() {
|
|
203
243
|
if (!this.loginModal) throw noModal.WalletInitializationError.notReady("Login modal is not initialized");
|
|
204
|
-
// if already connected return
|
|
205
|
-
if (
|
|
244
|
+
// if already connected return connection
|
|
245
|
+
if (noModal.CONNECTED_STATUSES.includes(this.status) && this.connection) return this.connection;
|
|
206
246
|
this.loginModal.open();
|
|
207
247
|
return new Promise((resolve, reject) => {
|
|
248
|
+
// track connection started event
|
|
249
|
+
const startTime = Date.now();
|
|
208
250
|
// remove all listeners when promise is resolved or rejected.
|
|
209
251
|
// this is to prevent memory leaks if user clicks connect button multiple times.
|
|
210
|
-
const
|
|
252
|
+
const handleCompletion = () => {
|
|
211
253
|
this.removeListener(noModal.CONNECTOR_EVENTS.ERRORED, handleError);
|
|
212
254
|
this.removeListener(interfaces.LOGIN_MODAL_EVENTS.MODAL_VISIBILITY, handleVisibility);
|
|
213
|
-
|
|
255
|
+
if (this.coreOptions.initialAuthenticationMode === noModal.CONNECTOR_INITIAL_AUTHENTICATION_MODE.CONNECT_AND_SIGN) {
|
|
256
|
+
this.removeListener(noModal.CONNECTOR_EVENTS.AUTHORIZED, handleCompletion);
|
|
257
|
+
} else {
|
|
258
|
+
this.removeListener(noModal.CONNECTOR_EVENTS.CONNECTED, handleCompletion);
|
|
259
|
+
}
|
|
260
|
+
return resolve(this.connection);
|
|
261
|
+
};
|
|
262
|
+
const handleConsentAccepted = async () => {
|
|
263
|
+
try {
|
|
264
|
+
var _this$primaryConnecto;
|
|
265
|
+
// track connection completed event
|
|
266
|
+
const userInfo = await this.getUserInfo();
|
|
267
|
+
// TODO: correct event data
|
|
268
|
+
this.analytics.track(noModal.ANALYTICS_EVENTS.CONNECTION_COMPLETED, {
|
|
269
|
+
connector: (_this$primaryConnecto = this.primaryConnector) === null || _this$primaryConnecto === void 0 ? void 0 : _this$primaryConnecto.name,
|
|
270
|
+
is_mfa_enabled: userInfo === null || userInfo === void 0 ? void 0 : userInfo.isMfaEnabled,
|
|
271
|
+
duration: Date.now() - startTime
|
|
272
|
+
});
|
|
273
|
+
} catch (error) {
|
|
274
|
+
noModal.log.error("Failed to track connection completed event after consent acceptance", error);
|
|
275
|
+
}
|
|
276
|
+
handleCompletion();
|
|
214
277
|
};
|
|
215
278
|
const handleError = err => {
|
|
216
|
-
this.removeListener(noModal.CONNECTOR_EVENTS.CONNECTED,
|
|
217
|
-
this.removeListener(noModal.CONNECTOR_EVENTS.AUTHORIZED,
|
|
279
|
+
this.removeListener(noModal.CONNECTOR_EVENTS.CONNECTED, handleCompletion);
|
|
280
|
+
this.removeListener(noModal.CONNECTOR_EVENTS.AUTHORIZED, handleCompletion);
|
|
218
281
|
this.removeListener(interfaces.LOGIN_MODAL_EVENTS.MODAL_VISIBILITY, handleVisibility);
|
|
219
282
|
return reject(err);
|
|
220
283
|
};
|
|
221
284
|
const handleVisibility = visibility => {
|
|
222
285
|
// modal is closed but user is not connected to any wallet.
|
|
223
286
|
if (!visibility && !noModal.CONNECTED_STATUSES.includes(this.status)) {
|
|
224
|
-
this.removeListener(noModal.CONNECTOR_EVENTS.CONNECTED,
|
|
287
|
+
this.removeListener(noModal.CONNECTOR_EVENTS.CONNECTED, handleCompletion);
|
|
225
288
|
this.removeListener(noModal.CONNECTOR_EVENTS.ERRORED, handleError);
|
|
226
|
-
this.removeListener(noModal.CONNECTOR_EVENTS.AUTHORIZED,
|
|
289
|
+
this.removeListener(noModal.CONNECTOR_EVENTS.AUTHORIZED, handleCompletion);
|
|
227
290
|
return reject(new Error("User closed the modal"));
|
|
228
291
|
}
|
|
229
292
|
};
|
|
293
|
+
if (this.consentRequired) {
|
|
294
|
+
this.once(noModal.CONNECTOR_EVENTS.CONSENT_ACCEPTED, handleConsentAccepted);
|
|
295
|
+
}
|
|
230
296
|
if (this.coreOptions.initialAuthenticationMode === noModal.CONNECTOR_INITIAL_AUTHENTICATION_MODE.CONNECT_AND_SIGN) {
|
|
231
|
-
this.once(noModal.CONNECTOR_EVENTS.AUTHORIZED,
|
|
297
|
+
this.once(noModal.CONNECTOR_EVENTS.AUTHORIZED, handleCompletion);
|
|
232
298
|
} else {
|
|
233
|
-
this.once(noModal.CONNECTOR_EVENTS.CONNECTED,
|
|
299
|
+
this.once(noModal.CONNECTOR_EVENTS.CONNECTED, handleCompletion);
|
|
234
300
|
}
|
|
235
301
|
this.once(noModal.CONNECTOR_EVENTS.ERRORED, handleError);
|
|
236
302
|
this.once(interfaces.LOGIN_MODAL_EVENTS.MODAL_VISIBILITY, handleVisibility);
|
|
237
303
|
});
|
|
238
304
|
}
|
|
305
|
+
async acceptConsent() {
|
|
306
|
+
await super.completeConsentAcceptance();
|
|
307
|
+
}
|
|
308
|
+
async switchAccount(account) {
|
|
309
|
+
const authConnector = this.getMainAuthConnector();
|
|
310
|
+
const switchResult = await authConnector.switchAccount(account, {
|
|
311
|
+
activeAccount: this.activeAccount,
|
|
312
|
+
currentChainId: this.currentChainId
|
|
313
|
+
});
|
|
314
|
+
if (!switchResult) {
|
|
315
|
+
return;
|
|
316
|
+
}
|
|
317
|
+
try {
|
|
318
|
+
var _await$this$getProjec;
|
|
319
|
+
const existingConnector = switchResult.kind === "external" ? this.getConnectedWalletConnector(switchResult.targetAccount) : null;
|
|
320
|
+
// check if the existing connector is connected and usable, then we can switch to it without re-connecting again
|
|
321
|
+
const isExistingConnectorConnected = Boolean(existingConnector && this.hasUsableConnectedSwitchConnector(existingConnector));
|
|
322
|
+
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;
|
|
323
|
+
if (switchResult.kind !== "external" || isExistingConnectorConnected) {
|
|
324
|
+
await this.runNonWalletConnectAccountAction(switchResult.targetAccount.connector, () => super.processSwitchAccountResult(authConnector, switchResult, {
|
|
325
|
+
walletConnector: isExistingConnectorConnected && existingConnector ? existingConnector : undefined,
|
|
326
|
+
projectConfig
|
|
327
|
+
}), {
|
|
328
|
+
skipSuccessScreen: true
|
|
329
|
+
});
|
|
330
|
+
await authConnector.trackSwitchAccountCompleted(switchResult.targetAccount);
|
|
331
|
+
return;
|
|
332
|
+
}
|
|
333
|
+
const connectorToSwitchTo = await this.prepareAccountSwitchConnector(switchResult.targetAccount.connector, switchResult.activeChainId, projectConfig);
|
|
334
|
+
if (connectorToSwitchTo.name !== noModal.WALLET_CONNECTORS.WALLET_CONNECT_V2) {
|
|
335
|
+
await this.runNonWalletConnectAccountAction(switchResult.targetAccount.connector, () => super.processSwitchAccountResult(authConnector, switchResult, {
|
|
336
|
+
walletConnector: connectorToSwitchTo,
|
|
337
|
+
projectConfig
|
|
338
|
+
}), {
|
|
339
|
+
skipSuccessScreen: true
|
|
340
|
+
});
|
|
341
|
+
await authConnector.trackSwitchAccountCompleted(switchResult.targetAccount);
|
|
342
|
+
return;
|
|
343
|
+
}
|
|
344
|
+
await this.switchToWalletConnectV2Account(switchResult, connectorToSwitchTo, projectConfig);
|
|
345
|
+
} catch (error) {
|
|
346
|
+
await authConnector.trackSwitchAccountFailed(switchResult.targetAccount, error);
|
|
347
|
+
throw error;
|
|
348
|
+
}
|
|
349
|
+
}
|
|
350
|
+
async linkAccount(params) {
|
|
351
|
+
// Pre-flight: ensure user is connected via AUTH so we fail fast before opening the modal.
|
|
352
|
+
this.getMainAuthConnector();
|
|
353
|
+
const chainId = this.resolveLinkAccountChainId(params === null || params === void 0 ? void 0 : params.chainId);
|
|
354
|
+
if (!(params !== null && params !== void 0 && params.connectorName)) {
|
|
355
|
+
const pickedConnector = await this.pickWalletForAccountLinking(chainId);
|
|
356
|
+
return this.linkAccountWithChosenConnector(pickedConnector, chainId);
|
|
357
|
+
}
|
|
358
|
+
return this.linkAccountWithChosenConnector(params.connectorName, chainId);
|
|
359
|
+
}
|
|
360
|
+
startAccountLinkingModalSession(params) {
|
|
361
|
+
if (!this.loginModal) throw noModal.WalletInitializationError.notReady("Login modal is not initialized");
|
|
362
|
+
this.loginModal.startAccountLinkingSession(params);
|
|
363
|
+
}
|
|
364
|
+
updateAccountLinkingModalSession(accountLinking) {
|
|
365
|
+
if (!this.loginModal) throw noModal.WalletInitializationError.notReady("Login modal is not initialized");
|
|
366
|
+
this.loginModal.updateAccountLinkingState(accountLinking);
|
|
367
|
+
}
|
|
368
|
+
resetAccountLinkingModalSession() {
|
|
369
|
+
if (!this.loginModal) throw noModal.WalletInitializationError.notReady("Login modal is not initialized");
|
|
370
|
+
this.loginModal.resetAccountLinkingSession();
|
|
371
|
+
}
|
|
372
|
+
formatAccountLinkingErrorMessage(error) {
|
|
373
|
+
if (error instanceof noModal.AccountLinkingError) {
|
|
374
|
+
const isUnlink = error.code >= 5406 && error.code <= 5408;
|
|
375
|
+
return isUnlink ? `[${error.code}] Account unlinking failed` : `[${error.code}] Account linking failed`;
|
|
376
|
+
}
|
|
377
|
+
return error === null || error === void 0 ? void 0 : error.message;
|
|
378
|
+
}
|
|
379
|
+
async prepareAccountLinkingConnector(connectorName, chainId) {
|
|
380
|
+
const {
|
|
381
|
+
projectConfig
|
|
382
|
+
} = await this.getProjectAndWalletConfig();
|
|
383
|
+
const connector = await super.createLinkingWalletConnector(connectorName, chainId, projectConfig);
|
|
384
|
+
if (connector.name !== noModal.WALLET_CONNECTORS.WALLET_CONNECT_V2) {
|
|
385
|
+
return connector;
|
|
386
|
+
}
|
|
387
|
+
if (!this.loginModal) throw noModal.WalletInitializationError.notReady("Login modal is not initialized");
|
|
388
|
+
this.clearAccountLinkingConnectorListeners();
|
|
389
|
+
this.removeAccountLinkingConnectorListeners = this.subscribeToAccountLinkingConnectorEvents(connector);
|
|
390
|
+
this.startAccountLinkingModalSession({
|
|
391
|
+
connectorName,
|
|
392
|
+
transportConnectorName: connector.name,
|
|
393
|
+
chainId,
|
|
394
|
+
intent: interfaces.ACCOUNT_LINKING_INTENT.LINK
|
|
395
|
+
});
|
|
396
|
+
this.loginModal.open();
|
|
397
|
+
return connector;
|
|
398
|
+
}
|
|
399
|
+
async prepareAccountSwitchConnector(connectorName, chainId, projectConfig) {
|
|
400
|
+
const finalProjectConfig = projectConfig !== null && projectConfig !== void 0 ? projectConfig : (await this.getProjectAndWalletConfig()).projectConfig;
|
|
401
|
+
const connector = await super.createSwitchingWalletConnector(connectorName, chainId, finalProjectConfig);
|
|
402
|
+
if (connector.name !== noModal.WALLET_CONNECTORS.WALLET_CONNECT_V2) {
|
|
403
|
+
return connector;
|
|
404
|
+
}
|
|
405
|
+
if (!this.loginModal) throw noModal.WalletInitializationError.notReady("Login modal is not initialized");
|
|
406
|
+
this.clearAccountLinkingConnectorListeners();
|
|
407
|
+
this.removeAccountLinkingConnectorListeners = this.subscribeToAccountLinkingConnectorEvents(connector);
|
|
408
|
+
this.startAccountLinkingModalSession({
|
|
409
|
+
connectorName,
|
|
410
|
+
transportConnectorName: connector.name,
|
|
411
|
+
chainId,
|
|
412
|
+
intent: interfaces.ACCOUNT_LINKING_INTENT.SWITCH
|
|
413
|
+
});
|
|
414
|
+
this.loginModal.open();
|
|
415
|
+
return connector;
|
|
416
|
+
}
|
|
239
417
|
initUIConfig(projectConfig) {
|
|
240
418
|
super.initUIConfig(projectConfig);
|
|
241
419
|
this.options.uiConfig = deepmerge(noModal.cloneDeep(projectConfig.whitelabel || {}), this.options.uiConfig || {});
|
|
@@ -525,7 +703,7 @@ class Web3Auth extends noModal.Web3AuthNoModal {
|
|
|
525
703
|
await connector.init({
|
|
526
704
|
autoConnect,
|
|
527
705
|
chainId: initialChain.chainId,
|
|
528
|
-
|
|
706
|
+
getAuthTokenInfo: this.options.initialAuthenticationMode === noModal.CONNECTOR_INITIAL_AUTHENTICATION_MODE.CONNECT_AND_SIGN
|
|
529
707
|
});
|
|
530
708
|
// note: not adding cachedWallet to modal if it is external wallet.
|
|
531
709
|
// adding it later if no in-app wallets are available.
|
|
@@ -533,7 +711,7 @@ class Web3Auth extends noModal.Web3AuthNoModal {
|
|
|
533
711
|
var _this$modalConfig$con6, _this$options$uiConfi13, _this$options$uiConfi14, _this$options$uiConfi15;
|
|
534
712
|
noModal.log.info("connectorInitResults", connectorName);
|
|
535
713
|
const loginMethods = ((_this$modalConfig$con6 = this.modalConfig.connectors[connectorName]) === null || _this$modalConfig$con6 === void 0 ? void 0 : _this$modalConfig$con6.loginMethods) || {};
|
|
536
|
-
this.loginModal.addSocialLogins(
|
|
714
|
+
this.loginModal.addSocialLogins(loginMethods, ((_this$options$uiConfi13 = this.options.uiConfig) === null || _this$options$uiConfi13 === void 0 ? void 0 : _this$options$uiConfi13.loginMethodsOrder) || config$1.AUTH_PROVIDERS, _objectSpread(_objectSpread({}, this.options.uiConfig), {}, {
|
|
537
715
|
loginGridCol: ((_this$options$uiConfi14 = this.options.uiConfig) === null || _this$options$uiConfi14 === void 0 ? void 0 : _this$options$uiConfi14.loginGridCol) || 3,
|
|
538
716
|
primaryButton: ((_this$options$uiConfi15 = this.options.uiConfig) === null || _this$options$uiConfi15 === void 0 ? void 0 : _this$options$uiConfi15.primaryButton) || "socialLogin"
|
|
539
717
|
}));
|
|
@@ -548,6 +726,7 @@ class Web3Auth extends noModal.Web3AuthNoModal {
|
|
|
548
726
|
const connectorChainNamespaceMap = {};
|
|
549
727
|
// we do it like this because we don't want one slow connector to delay the load of the entire external wallet section.
|
|
550
728
|
externalConnectors.forEach(async connector => {
|
|
729
|
+
var _this$connection;
|
|
551
730
|
const connectorName = connector.name;
|
|
552
731
|
noModal.log.debug("init external wallet", this.cachedConnector, connectorName, connector.status);
|
|
553
732
|
// a wallet can support multiple chain namespaces e.g. Phantom has EvmInjected connector and WalletStandard connector.
|
|
@@ -559,14 +738,14 @@ class Web3Auth extends noModal.Web3AuthNoModal {
|
|
|
559
738
|
}
|
|
560
739
|
// initialize connectors
|
|
561
740
|
// skip initializing cached connector here as it is already being initialized in initModal before.
|
|
562
|
-
if (connector.status === noModal.CONNECTOR_STATUS.NOT_READY && this.cachedConnector !== connectorName) {
|
|
741
|
+
if (connector.status === noModal.CONNECTOR_STATUS.NOT_READY && this.cachedConnector !== connectorName && ((_this$connection = this.connection) === null || _this$connection === void 0 ? void 0 : _this$connection.connectorName) !== connectorName) {
|
|
563
742
|
try {
|
|
564
743
|
this.subscribeToConnectorEvents(connector);
|
|
565
744
|
const initialChain = this.getInitialChainIdForConnector(connector);
|
|
566
745
|
await connector.init({
|
|
567
746
|
autoConnect: this.cachedConnector === connectorName,
|
|
568
747
|
chainId: initialChain.chainId,
|
|
569
|
-
|
|
748
|
+
getAuthTokenInfo: this.options.initialAuthenticationMode === noModal.CONNECTOR_INITIAL_AUTHENTICATION_MODE.CONNECT_AND_SIGN
|
|
570
749
|
});
|
|
571
750
|
} catch (error) {
|
|
572
751
|
noModal.log.error(error, "error while initializing connector", connectorName);
|
|
@@ -588,6 +767,283 @@ class Web3Auth extends noModal.Web3AuthNoModal {
|
|
|
588
767
|
}
|
|
589
768
|
});
|
|
590
769
|
}
|
|
770
|
+
async switchToWalletConnectV2Account(switchResult, connectorToSwitchTo, projectConfig) {
|
|
771
|
+
const authConnector = this.getMainAuthConnector();
|
|
772
|
+
try {
|
|
773
|
+
await this.runWalletConnectV2AccountAction({
|
|
774
|
+
connector: connectorToSwitchTo,
|
|
775
|
+
connectParams: {
|
|
776
|
+
chainId: switchResult.activeChainId
|
|
777
|
+
},
|
|
778
|
+
onConnected: async connector => {
|
|
779
|
+
await super.processSwitchAccountResult(authConnector, switchResult, {
|
|
780
|
+
walletConnector: connector,
|
|
781
|
+
projectConfig
|
|
782
|
+
});
|
|
783
|
+
await authConnector.trackSwitchAccountCompleted(switchResult.targetAccount);
|
|
784
|
+
return {
|
|
785
|
+
result: undefined,
|
|
786
|
+
retainConnector: true
|
|
787
|
+
};
|
|
788
|
+
},
|
|
789
|
+
intent: interfaces.ACCOUNT_LINKING_INTENT.SWITCH
|
|
790
|
+
});
|
|
791
|
+
} catch (error) {
|
|
792
|
+
await authConnector.trackSwitchAccountFailed(switchResult.targetAccount, error);
|
|
793
|
+
throw error;
|
|
794
|
+
}
|
|
795
|
+
}
|
|
796
|
+
/**
|
|
797
|
+
* Runs a link/switch action for WalletConnect v2, racing connector.connect()
|
|
798
|
+
* against a modal-close promise to cancel and clean up the WC session if the
|
|
799
|
+
* user closes the modal during QR scanning.
|
|
800
|
+
* For synchronous connectors use {@link runNonWalletConnectAccountAction}.
|
|
801
|
+
*/
|
|
802
|
+
async runWalletConnectV2AccountAction(params) {
|
|
803
|
+
if (!this.loginModal) throw noModal.WalletInitializationError.notReady("Login modal is not initialized");
|
|
804
|
+
this.clearAccountLinkingResetOnCloseListener();
|
|
805
|
+
let retainConnector = false;
|
|
806
|
+
let connectCancelled = false;
|
|
807
|
+
let removeConnectPhaseVisibilityListener = () => {};
|
|
808
|
+
const closeDuringConnectPromise = new Promise((_resolve, reject) => {
|
|
809
|
+
const handleVisibility = visibility => {
|
|
810
|
+
if (!visibility) {
|
|
811
|
+
connectCancelled = true;
|
|
812
|
+
reject(noModal.WalletLoginError.popupClosed("User closed the modal"));
|
|
813
|
+
}
|
|
814
|
+
};
|
|
815
|
+
this.on(interfaces.LOGIN_MODAL_EVENTS.MODAL_VISIBILITY, handleVisibility);
|
|
816
|
+
removeConnectPhaseVisibilityListener = () => {
|
|
817
|
+
this.removeListener(interfaces.LOGIN_MODAL_EVENTS.MODAL_VISIBILITY, handleVisibility);
|
|
818
|
+
};
|
|
819
|
+
});
|
|
820
|
+
const connector = params.connector;
|
|
821
|
+
const connectPromise = connector.connect(params.connectParams);
|
|
822
|
+
void connectPromise.then(async connection => {
|
|
823
|
+
if (!connectCancelled || !connection || !connector.connected || retainConnector) return undefined;
|
|
824
|
+
try {
|
|
825
|
+
await connector.disconnect({
|
|
826
|
+
cleanup: true
|
|
827
|
+
});
|
|
828
|
+
} catch (error) {
|
|
829
|
+
noModal.log.debug("Failed to disconnect cancelled WalletConnect connector during cleanup", error);
|
|
830
|
+
}
|
|
831
|
+
return undefined;
|
|
832
|
+
}).catch(() => {});
|
|
833
|
+
try {
|
|
834
|
+
const connection = await Promise.race([connectPromise, closeDuringConnectPromise]);
|
|
835
|
+
if (!connection) {
|
|
836
|
+
throw noModal.AccountLinkingError.requestFailed("Failed to connect wallet.");
|
|
837
|
+
}
|
|
838
|
+
removeConnectPhaseVisibilityListener();
|
|
839
|
+
this.updateAccountLinkingModalSession({
|
|
840
|
+
status: interfaces.ACCOUNT_LINKING_STATUS.LINKING,
|
|
841
|
+
intent: params.intent,
|
|
842
|
+
walletConnectUri: "",
|
|
843
|
+
errorMessage: ""
|
|
844
|
+
});
|
|
845
|
+
const {
|
|
846
|
+
result,
|
|
847
|
+
retainConnector: shouldRetainConnector = false
|
|
848
|
+
} = await params.onConnected(connector, connection);
|
|
849
|
+
retainConnector = shouldRetainConnector;
|
|
850
|
+
this.resetAccountLinkingModalSession();
|
|
851
|
+
this.loginModal.endConnectingLoader({
|
|
852
|
+
success: true,
|
|
853
|
+
successMessage: "",
|
|
854
|
+
skipSuccessScreen: params.intent === interfaces.ACCOUNT_LINKING_INTENT.SWITCH
|
|
855
|
+
});
|
|
856
|
+
return result;
|
|
857
|
+
} catch (error) {
|
|
858
|
+
const isPopupClosed = error instanceof noModal.Web3AuthError && error.code === 5114;
|
|
859
|
+
if (isPopupClosed) {
|
|
860
|
+
this.resetAccountLinkingModalSession();
|
|
861
|
+
} else {
|
|
862
|
+
const fallbackMessage = params.intent === interfaces.ACCOUNT_LINKING_INTENT.SWITCH ? "Failed to switch wallet." : undefined;
|
|
863
|
+
const errorMessage = this.formatAccountLinkingErrorMessage(error) || fallbackMessage;
|
|
864
|
+
this.resetAccountLinkingModalSession();
|
|
865
|
+
this.loginModal.endConnectingLoader({
|
|
866
|
+
success: false,
|
|
867
|
+
errorMessage
|
|
868
|
+
});
|
|
869
|
+
}
|
|
870
|
+
this.installAccountLinkingResetOnCloseListener();
|
|
871
|
+
throw error;
|
|
872
|
+
} finally {
|
|
873
|
+
removeConnectPhaseVisibilityListener();
|
|
874
|
+
this.clearAccountLinkingConnectorListeners();
|
|
875
|
+
try {
|
|
876
|
+
if (!retainConnector && connector.connected) {
|
|
877
|
+
await connector.disconnect({
|
|
878
|
+
cleanup: true
|
|
879
|
+
});
|
|
880
|
+
}
|
|
881
|
+
} catch (error) {
|
|
882
|
+
noModal.log.debug("Failed to disconnect WalletConnect connector during cleanup", error);
|
|
883
|
+
}
|
|
884
|
+
}
|
|
885
|
+
}
|
|
886
|
+
async linkAccountWithChosenConnector(connectorName, chainId) {
|
|
887
|
+
const connectorToLink = await this.prepareAccountLinkingConnector(connectorName, chainId);
|
|
888
|
+
if (connectorToLink.name !== noModal.WALLET_CONNECTORS.WALLET_CONNECT_V2) {
|
|
889
|
+
return this.runNonWalletConnectAccountAction(connectorName, () => super.linkAccountWithConnector(connectorName, chainId, connectorToLink), {
|
|
890
|
+
connector: connectorToLink
|
|
891
|
+
});
|
|
892
|
+
}
|
|
893
|
+
return this.runWalletConnectV2AccountAction({
|
|
894
|
+
connector: connectorToLink,
|
|
895
|
+
connectParams: {
|
|
896
|
+
chainId,
|
|
897
|
+
isAccountLinking: true
|
|
898
|
+
},
|
|
899
|
+
onConnected: async connector => ({
|
|
900
|
+
result: await super.linkAccountWithConnector(connectorName, chainId, connector)
|
|
901
|
+
}),
|
|
902
|
+
intent: interfaces.ACCOUNT_LINKING_INTENT.LINK
|
|
903
|
+
});
|
|
904
|
+
}
|
|
905
|
+
pickWalletForAccountLinking(chainId) {
|
|
906
|
+
if (!this.loginModal) throw noModal.WalletInitializationError.notReady("Login modal is not initialized");
|
|
907
|
+
if (this.accountLinkingPickerResolver) {
|
|
908
|
+
throw noModal.AccountLinkingError.requestFailed("Another account linking picker is already in progress.");
|
|
909
|
+
}
|
|
910
|
+
this.loginModal.startAccountLinkingPicker({
|
|
911
|
+
chainId
|
|
912
|
+
});
|
|
913
|
+
return new Promise((resolve, reject) => {
|
|
914
|
+
const cleanup = () => {
|
|
915
|
+
this.accountLinkingPickerResolver = null;
|
|
916
|
+
if (this.removeAccountLinkingPickerCloseListener) {
|
|
917
|
+
this.removeAccountLinkingPickerCloseListener();
|
|
918
|
+
this.removeAccountLinkingPickerCloseListener = null;
|
|
919
|
+
}
|
|
920
|
+
this.loginModal.endAccountLinkingPicker();
|
|
921
|
+
};
|
|
922
|
+
const handleVisibility = visible => {
|
|
923
|
+
if (visible) return;
|
|
924
|
+
cleanup();
|
|
925
|
+
reject(noModal.WalletLoginError.popupClosed("User closed the modal"));
|
|
926
|
+
};
|
|
927
|
+
this.accountLinkingPickerResolver = connector => {
|
|
928
|
+
cleanup();
|
|
929
|
+
resolve(connector);
|
|
930
|
+
};
|
|
931
|
+
this.on(interfaces.LOGIN_MODAL_EVENTS.MODAL_VISIBILITY, handleVisibility);
|
|
932
|
+
this.removeAccountLinkingPickerCloseListener = () => {
|
|
933
|
+
this.removeListener(interfaces.LOGIN_MODAL_EVENTS.MODAL_VISIBILITY, handleVisibility);
|
|
934
|
+
};
|
|
935
|
+
});
|
|
936
|
+
}
|
|
937
|
+
/**
|
|
938
|
+
* Runs a link/switch action for synchronous connectors (injected wallets, already-connected).
|
|
939
|
+
* Shows the connecting loader, forwards AUTHORIZING events to the modal, and
|
|
940
|
+
* resolves/rejects the loader on completion.
|
|
941
|
+
* For WalletConnect v2 use {@link runWalletConnectV2AccountAction}.
|
|
942
|
+
*/
|
|
943
|
+
async runNonWalletConnectAccountAction(connectorName, fn, options = {}) {
|
|
944
|
+
if (!this.loginModal) throw noModal.WalletInitializationError.notReady("Login modal is not initialized");
|
|
945
|
+
const displayName = noModal.CONNECTOR_NAMES[connectorName] || connectorName;
|
|
946
|
+
this.loginModal.startConnectingLoader({
|
|
947
|
+
connector: connectorName,
|
|
948
|
+
connectorName: displayName
|
|
949
|
+
});
|
|
950
|
+
// Forward the AUTHORIZING event from the linking wallet connector to the modal so we can
|
|
951
|
+
// swap the loader from "connecting" to "authorizing" while the user reviews the signature
|
|
952
|
+
// request inside their wallet.
|
|
953
|
+
const handleAuthorizing = () => {
|
|
954
|
+
var _this$loginModal2;
|
|
955
|
+
return (_this$loginModal2 = this.loginModal) === null || _this$loginModal2 === void 0 ? void 0 : _this$loginModal2.markLoaderAuthorizing();
|
|
956
|
+
};
|
|
957
|
+
if (options.connector) {
|
|
958
|
+
options.connector.on(noModal.CONNECTOR_EVENTS.AUTHORIZING, handleAuthorizing);
|
|
959
|
+
}
|
|
960
|
+
try {
|
|
961
|
+
const result = await fn();
|
|
962
|
+
this.resetAccountLinkingModalSession();
|
|
963
|
+
this.loginModal.endConnectingLoader({
|
|
964
|
+
success: true,
|
|
965
|
+
skipSuccessScreen: options.skipSuccessScreen
|
|
966
|
+
});
|
|
967
|
+
return result;
|
|
968
|
+
} catch (error) {
|
|
969
|
+
const message = this.formatAccountLinkingErrorMessage(error);
|
|
970
|
+
this.resetAccountLinkingModalSession();
|
|
971
|
+
this.loginModal.endConnectingLoader({
|
|
972
|
+
success: false,
|
|
973
|
+
errorMessage: message
|
|
974
|
+
});
|
|
975
|
+
throw error;
|
|
976
|
+
} finally {
|
|
977
|
+
if (options.connector) {
|
|
978
|
+
options.connector.removeListener(noModal.CONNECTOR_EVENTS.AUTHORIZING, handleAuthorizing);
|
|
979
|
+
}
|
|
980
|
+
}
|
|
981
|
+
}
|
|
982
|
+
subscribeToAccountLinkingConnectorEvents(connector) {
|
|
983
|
+
const handleConnecting = () => {
|
|
984
|
+
this.updateAccountLinkingModalSession({
|
|
985
|
+
status: interfaces.ACCOUNT_LINKING_STATUS.AWAITING_CONNECTION,
|
|
986
|
+
errorMessage: ""
|
|
987
|
+
});
|
|
988
|
+
};
|
|
989
|
+
const handleConnectorDataUpdated = connectorData => {
|
|
990
|
+
if (connectorData.connectorName !== noModal.WALLET_CONNECTORS.WALLET_CONNECT_V2) return;
|
|
991
|
+
const walletConnectData = connectorData.data;
|
|
992
|
+
if (!walletConnectData.uri) return;
|
|
993
|
+
this.updateAccountLinkingModalSession({
|
|
994
|
+
walletConnectUri: walletConnectData.uri,
|
|
995
|
+
status: interfaces.ACCOUNT_LINKING_STATUS.AWAITING_CONNECTION,
|
|
996
|
+
errorMessage: ""
|
|
997
|
+
});
|
|
998
|
+
};
|
|
999
|
+
const handleConnected = _data => {
|
|
1000
|
+
this.updateAccountLinkingModalSession({
|
|
1001
|
+
status: interfaces.ACCOUNT_LINKING_STATUS.WALLET_CONNECTED,
|
|
1002
|
+
walletConnectUri: "",
|
|
1003
|
+
errorMessage: ""
|
|
1004
|
+
});
|
|
1005
|
+
};
|
|
1006
|
+
const handleErrored = error => {
|
|
1007
|
+
this.updateAccountLinkingModalSession({
|
|
1008
|
+
status: interfaces.ACCOUNT_LINKING_STATUS.ERRORED,
|
|
1009
|
+
errorMessage: error.message || "Failed to connect wallet."
|
|
1010
|
+
});
|
|
1011
|
+
};
|
|
1012
|
+
connector.on(noModal.CONNECTOR_EVENTS.CONNECTING, handleConnecting);
|
|
1013
|
+
connector.on(noModal.CONNECTOR_EVENTS.CONNECTOR_DATA_UPDATED, handleConnectorDataUpdated);
|
|
1014
|
+
connector.on(noModal.CONNECTOR_EVENTS.CONNECTED, handleConnected);
|
|
1015
|
+
connector.on(noModal.CONNECTOR_EVENTS.ERRORED, handleErrored);
|
|
1016
|
+
return () => {
|
|
1017
|
+
connector.removeListener(noModal.CONNECTOR_EVENTS.CONNECTING, handleConnecting);
|
|
1018
|
+
connector.removeListener(noModal.CONNECTOR_EVENTS.CONNECTOR_DATA_UPDATED, handleConnectorDataUpdated);
|
|
1019
|
+
connector.removeListener(noModal.CONNECTOR_EVENTS.CONNECTED, handleConnected);
|
|
1020
|
+
connector.removeListener(noModal.CONNECTOR_EVENTS.ERRORED, handleErrored);
|
|
1021
|
+
};
|
|
1022
|
+
}
|
|
1023
|
+
clearAccountLinkingConnectorListeners() {
|
|
1024
|
+
if (this.removeAccountLinkingConnectorListeners) {
|
|
1025
|
+
this.removeAccountLinkingConnectorListeners();
|
|
1026
|
+
this.removeAccountLinkingConnectorListeners = null;
|
|
1027
|
+
}
|
|
1028
|
+
}
|
|
1029
|
+
installAccountLinkingResetOnCloseListener() {
|
|
1030
|
+
this.clearAccountLinkingResetOnCloseListener();
|
|
1031
|
+
const handleVisibility = visibility => {
|
|
1032
|
+
if (visibility) return;
|
|
1033
|
+
this.resetAccountLinkingModalSession();
|
|
1034
|
+
this.clearAccountLinkingResetOnCloseListener();
|
|
1035
|
+
};
|
|
1036
|
+
this.on(interfaces.LOGIN_MODAL_EVENTS.MODAL_VISIBILITY, handleVisibility);
|
|
1037
|
+
this.removeAccountLinkingResetOnCloseListener = () => {
|
|
1038
|
+
this.removeListener(interfaces.LOGIN_MODAL_EVENTS.MODAL_VISIBILITY, handleVisibility);
|
|
1039
|
+
};
|
|
1040
|
+
}
|
|
1041
|
+
clearAccountLinkingResetOnCloseListener() {
|
|
1042
|
+
if (this.removeAccountLinkingResetOnCloseListener) {
|
|
1043
|
+
this.removeAccountLinkingResetOnCloseListener();
|
|
1044
|
+
this.removeAccountLinkingResetOnCloseListener = null;
|
|
1045
|
+
}
|
|
1046
|
+
}
|
|
591
1047
|
getCombinedConnectionId(authConnectionId, groupedAuthConnectionId) {
|
|
592
1048
|
let id = authConnectionId;
|
|
593
1049
|
if (groupedAuthConnectionId) {
|
|
@@ -3,14 +3,16 @@
|
|
|
3
3
|
var react = require('react');
|
|
4
4
|
var WalletServicesInnerContext = require('./context/WalletServicesInnerContext.js');
|
|
5
5
|
var Web3AuthInnerContext = require('./context/Web3AuthInnerContext.js');
|
|
6
|
+
var react$1 = require('@web3auth/no-modal/react');
|
|
6
7
|
|
|
7
8
|
function Web3AuthProvider({
|
|
8
9
|
config,
|
|
9
10
|
initialState,
|
|
10
11
|
children
|
|
11
12
|
}) {
|
|
12
|
-
const
|
|
13
|
-
|
|
13
|
+
const SharedWalletServicesContextProvider = WalletServicesInnerContext.WalletServicesContextProvider;
|
|
14
|
+
const pluginChild = /*#__PURE__*/react.createElement(SharedWalletServicesContextProvider, {
|
|
15
|
+
context: react$1.Web3AuthInnerContext
|
|
14
16
|
}, children);
|
|
15
17
|
return /*#__PURE__*/react.createElement(Web3AuthInnerContext.Web3AuthInnerProvider, {
|
|
16
18
|
config,
|