@dynamic-labs/sdk-react-core 1.0.0-alpha.9 → 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +45 -0
- package/package.cjs +3 -3
- package/package.js +3 -3
- package/package.json +12 -11
- package/src/index.cjs +8 -1
- package/src/index.d.ts +3 -1
- package/src/index.js +5 -1
- package/src/lib/Main.cjs +3 -1
- package/src/lib/Main.js +3 -1
- package/src/lib/components/Accordion/components/AccordionItem/AccordionItem.cjs +3 -2
- package/src/lib/components/Accordion/components/AccordionItem/AccordionItem.js +3 -2
- package/src/lib/components/AnimatePresence/AnimatePresence.cjs +3 -2
- package/src/lib/components/AnimatePresence/AnimatePresence.js +3 -2
- package/src/lib/components/AuthProviderIcon/AuthProviderIcon.cjs +3 -2
- package/src/lib/components/AuthProviderIcon/AuthProviderIcon.js +3 -2
- package/src/lib/components/Divider/Divider.cjs +2 -1
- package/src/lib/components/Divider/Divider.js +2 -1
- package/src/lib/components/MenuList/Dropdown/Dropdown.cjs +3 -2
- package/src/lib/components/MenuList/Dropdown/Dropdown.js +3 -2
- package/src/lib/components/Modal/Modal.cjs +3 -2
- package/src/lib/components/Modal/Modal.js +3 -2
- package/src/lib/components/NeedHelpSection/NeedHelpSection.cjs +3 -2
- package/src/lib/components/NeedHelpSection/NeedHelpSection.js +3 -2
- package/src/lib/components/NetworkPicker/NetworkPicker.cjs +5 -4
- package/src/lib/components/NetworkPicker/NetworkPicker.js +5 -4
- package/src/lib/components/NetworkPicker/components/EvmNetworkControl/EvmNetworkControl.cjs +2 -1
- package/src/lib/components/NetworkPicker/components/EvmNetworkControl/EvmNetworkControl.js +2 -1
- package/src/lib/components/NetworkPicker/components/Network/Network.cjs +3 -2
- package/src/lib/components/NetworkPicker/components/Network/Network.js +3 -2
- package/src/lib/components/NetworkPicker/components/NonNetworkSwitchingSupportedControl/NonNetworkSwitchingSupportedControl.cjs +2 -1
- package/src/lib/components/NetworkPicker/components/NonNetworkSwitchingSupportedControl/NonNetworkSwitchingSupportedControl.js +2 -1
- package/src/lib/components/OTPVerificationView/OTPVerificationView.cjs +2 -1
- package/src/lib/components/OTPVerificationView/OTPVerificationView.js +2 -1
- package/src/lib/components/OverlayCard/OverlayCard.cjs +3 -2
- package/src/lib/components/OverlayCard/OverlayCard.js +3 -2
- package/src/lib/components/PasskeyCreatedSuccessBanner/PasskeyCreatedSuccessBanner.cjs +3 -2
- package/src/lib/components/PasskeyCreatedSuccessBanner/PasskeyCreatedSuccessBanner.js +3 -2
- package/src/lib/components/Portal/Portal.cjs +3 -2
- package/src/lib/components/Portal/Portal.js +3 -2
- package/src/lib/components/SecureTurnkeyWalletCard/SecureTurnkeyWalletCard.cjs +1 -1
- package/src/lib/components/SecureTurnkeyWalletCard/SecureTurnkeyWalletCard.js +1 -1
- package/src/lib/components/SendBalancePageLayout/components/TokenBalanceCard/TokenBalanceCard.cjs +2 -1
- package/src/lib/components/SendBalancePageLayout/components/TokenBalanceCard/TokenBalanceCard.js +2 -1
- package/src/lib/components/SocialSignIn/SocialSignIn.cjs +4 -3
- package/src/lib/components/SocialSignIn/SocialSignIn.js +4 -3
- package/src/lib/components/SyncPasskeyFlow/SyncPasskeyFlow.cjs +3 -2
- package/src/lib/components/SyncPasskeyFlow/SyncPasskeyFlow.js +3 -2
- package/src/lib/components/Tooltip/Tooltip.cjs +3 -2
- package/src/lib/components/Tooltip/Tooltip.js +3 -2
- package/src/lib/components/TransactionStatusLayout/TransactionStatusLayout.cjs +3 -2
- package/src/lib/components/TransactionStatusLayout/TransactionStatusLayout.js +3 -2
- package/src/lib/components/Transition/VerticalDrawerTransition/VerticalDrawerTransition.cjs +3 -2
- package/src/lib/components/Transition/VerticalDrawerTransition/VerticalDrawerTransition.js +3 -2
- package/src/lib/components/UserAddress/UserAddress.cjs +3 -2
- package/src/lib/components/UserAddress/UserAddress.js +3 -2
- package/src/lib/components/UserProfile/parts/UserProfileField/UserProfileField.cjs +2 -1
- package/src/lib/components/UserProfile/parts/UserProfileField/UserProfileField.js +2 -1
- package/src/lib/components/UserProfile/parts/UserProfileSection/UserProfileSection.cjs +2 -1
- package/src/lib/components/UserProfile/parts/UserProfileSection/UserProfileSection.js +2 -1
- package/src/lib/components/UserProfile/parts/UserProfileSocialAccount/UserProfileSocialAccount.cjs +2 -1
- package/src/lib/components/UserProfile/parts/UserProfileSocialAccount/UserProfileSocialAccount.js +2 -1
- package/src/lib/context/AccessDeniedContext/AccessDeniedContext.js +1 -1
- package/src/lib/context/AccountExistsContext/AccountExistsContext.js +1 -1
- package/src/lib/context/CaptchaContext/CaptchaContext.js +1 -1
- package/src/lib/context/DynamicContext/DynamicContext.cjs +8 -2
- package/src/lib/context/DynamicContext/DynamicContext.d.ts +5 -2
- package/src/lib/context/DynamicContext/DynamicContext.js +9 -4
- package/src/lib/context/DynamicContext/useCustomerCallbacks/useCustomerAuthFlowCallbacks.cjs +3 -2
- package/src/lib/context/DynamicContext/useCustomerCallbacks/useCustomerAuthFlowCallbacks.js +3 -2
- package/src/lib/context/DynamicContext/useDynamicContext.cjs +1 -4
- package/src/lib/context/DynamicContext/useDynamicContext.d.ts +1 -1
- package/src/lib/context/DynamicContext/useDynamicContext.js +1 -4
- package/src/lib/context/EmailVerificationContext/EmailVerificationContext.js +1 -1
- package/src/lib/context/FundingContext/FundingContext.cjs +35 -27
- package/src/lib/context/FundingContext/FundingContext.d.ts +4 -0
- package/src/lib/context/FundingContext/FundingContext.js +36 -28
- package/src/lib/context/FundingContext/index.d.ts +1 -0
- package/src/lib/context/FundingContext/useFunding/index.d.ts +1 -0
- package/src/lib/context/FundingContext/useFunding/useFunding.cjs +39 -0
- package/src/lib/context/FundingContext/useFunding/useFunding.d.ts +9 -0
- package/src/lib/context/FundingContext/useFunding/useFunding.js +35 -0
- package/src/lib/context/LoadingContext/LoadingContext.js +1 -1
- package/src/lib/context/MockContext/MockContext.cjs +3 -1
- package/src/lib/context/MockContext/MockContext.js +3 -1
- package/src/lib/context/QrCodeContext/QrCodeContext.cjs +3 -2
- package/src/lib/context/QrCodeContext/QrCodeContext.js +3 -2
- package/src/lib/context/SendBalanceContext/SendBalanceContext.cjs +3 -2
- package/src/lib/context/SendBalanceContext/SendBalanceContext.js +3 -2
- package/src/lib/context/SocialRedirectContext/SocialRedirectContext.cjs +3 -2
- package/src/lib/context/SocialRedirectContext/SocialRedirectContext.js +3 -2
- package/src/lib/context/UserFieldEditorContext/UserFieldEditorContext.cjs +3 -2
- package/src/lib/context/UserFieldEditorContext/UserFieldEditorContext.js +3 -2
- package/src/lib/context/UserWalletsContext/UserWalletsContext.cjs +52 -0
- package/src/lib/context/UserWalletsContext/UserWalletsContext.d.ts +3 -1
- package/src/lib/context/UserWalletsContext/UserWalletsContext.js +45 -0
- package/src/lib/context/ViewContext/ViewContext.js +1 -1
- package/src/lib/data/api.js +1 -1
- package/src/lib/layout/DynamicAuthLayout/DynamicAuthLayout.cjs +2 -1
- package/src/lib/layout/DynamicAuthLayout/DynamicAuthLayout.js +2 -1
- package/src/lib/layout/DynamicAuthLayout/Header/header.cjs +2 -1
- package/src/lib/layout/DynamicAuthLayout/Header/header.js +2 -1
- package/src/lib/layout/DynamicAuthLayout/HelpContent/HelpHeader/HelpHeader.cjs +2 -1
- package/src/lib/layout/DynamicAuthLayout/HelpContent/HelpHeader/HelpHeader.js +2 -1
- package/src/lib/layout/DynamicAuthLayout/HelpContent/PasskeyInfoHelper/PasskeyInfoHelper.cjs +2 -1
- package/src/lib/layout/DynamicAuthLayout/HelpContent/PasskeyInfoHelper/PasskeyInfoHelper.js +2 -1
- package/src/lib/layout/DynamicAuthLayout/HelpContent/WalletListHelpContent/Item/Item.cjs +2 -1
- package/src/lib/layout/DynamicAuthLayout/HelpContent/WalletListHelpContent/Item/Item.js +2 -1
- package/src/lib/layout/DynamicAuthLayout/HelpContent/WalletListHelpContent/WalletExtensionOrAppContinueButton/WalletExtensionOrAppContinueButton.cjs +2 -1
- package/src/lib/layout/DynamicAuthLayout/HelpContent/WalletListHelpContent/WalletExtensionOrAppContinueButton/WalletExtensionOrAppContinueButton.js +2 -1
- package/src/lib/layout/DynamicAuthLayout/HelpContent/WalletListHelpContent/WalletListHelpContent.cjs +2 -1
- package/src/lib/layout/DynamicAuthLayout/HelpContent/WalletListHelpContent/WalletListHelpContent.js +2 -1
- package/src/lib/layout/DynamicAuthLayout/HelpContent/WalletMoreInfoContent/WalletMoreInfoContent.cjs +2 -1
- package/src/lib/layout/DynamicAuthLayout/HelpContent/WalletMoreInfoContent/WalletMoreInfoContent.js +2 -1
- package/src/lib/layout/DynamicAuthLayout/ToSFooter/ToSFooter.cjs +2 -1
- package/src/lib/layout/DynamicAuthLayout/ToSFooter/ToSFooter.js +2 -1
- package/src/lib/layout/DynamicAuthLayout/WalletProgressStepper/WalletProgressStepper.cjs +2 -1
- package/src/lib/layout/DynamicAuthLayout/WalletProgressStepper/WalletProgressStepper.js +2 -1
- package/src/lib/layout/DynamicUserProfileLayout/DynamicUserProfileLayout.cjs +3 -1
- package/src/lib/layout/DynamicUserProfileLayout/DynamicUserProfileLayout.js +3 -1
- package/src/lib/layouts/BridgeNextWalletToConnectLayout/BridgeNextWalletToConnectLayout.cjs +2 -1
- package/src/lib/layouts/BridgeNextWalletToConnectLayout/BridgeNextWalletToConnectLayout.js +2 -1
- package/src/lib/layouts/BridgeWelcomeLayout/BridgeWelcomeLayout.cjs +2 -1
- package/src/lib/layouts/BridgeWelcomeLayout/BridgeWelcomeLayout.js +2 -1
- package/src/lib/layouts/ConnectedWalletsListLayout/ConnectedWalletsListLayout.cjs +2 -1
- package/src/lib/layouts/ConnectedWalletsListLayout/ConnectedWalletsListLayout.js +2 -1
- package/src/lib/locale/en/translation.cjs +4 -4
- package/src/lib/locale/en/translation.d.ts +2 -2
- package/src/lib/locale/en/translation.js +4 -4
- package/src/lib/modals/DynamicAuthModal/DynamicAuthModal.cjs +2 -1
- package/src/lib/modals/DynamicAuthModal/DynamicAuthModal.js +2 -1
- package/src/lib/modals/SendBalanceModal/SendBalanceModal.cjs +2 -1
- package/src/lib/modals/SendBalanceModal/SendBalanceModal.js +2 -1
- package/src/lib/modals/SignMessageConfirmationModal/SignMessageConfirmationModal.cjs +2 -1
- package/src/lib/modals/SignMessageConfirmationModal/SignMessageConfirmationModal.js +2 -1
- package/src/lib/modals/SignMessageConfirmationModal/getProperErrorMessage.cjs +4 -0
- package/src/lib/modals/SignMessageConfirmationModal/getProperErrorMessage.js +4 -0
- package/src/lib/modals/TransactionConfirmationModal/TransactionConfirmationModal.cjs +1 -1
- package/src/lib/modals/TransactionConfirmationModal/TransactionConfirmationModal.js +1 -1
- package/src/lib/modals/UserFieldEditorModal/UserFieldEditorModal.cjs +2 -1
- package/src/lib/modals/UserFieldEditorModal/UserFieldEditorModal.js +2 -1
- package/src/lib/shared/types/index.d.ts +9 -0
- package/src/lib/styles/index.shadow.cjs +1 -1
- package/src/lib/styles/index.shadow.js +1 -1
- package/src/lib/utils/functions/createOwnerWallet/createOwnerWallet.cjs +6 -0
- package/src/lib/utils/functions/createOwnerWallet/createOwnerWallet.js +6 -0
- package/src/lib/utils/functions/getOauthLoginUrl/getOauthLoginUrl.cjs +1 -1
- package/src/lib/utils/functions/getOauthLoginUrl/getOauthLoginUrl.js +1 -1
- package/src/lib/utils/hooks/authenticationHooks/useConnectAndSign/useConnectAndSign.cjs +9 -2
- package/src/lib/utils/hooks/authenticationHooks/useConnectAndSign/useConnectAndSign.js +9 -2
- package/src/lib/utils/hooks/useConnectWallet/updateUserWalletsFromConnectedWallets/index.d.ts +1 -0
- package/src/lib/utils/hooks/useConnectWallet/updateUserWalletsFromConnectedWallets/updateUserWalletsFromConnectedWallets.cjs +37 -0
- package/src/lib/utils/hooks/useConnectWallet/updateUserWalletsFromConnectedWallets/updateUserWalletsFromConnectedWallets.d.ts +8 -0
- package/src/lib/utils/hooks/useConnectWallet/updateUserWalletsFromConnectedWallets/updateUserWalletsFromConnectedWallets.js +33 -0
- package/src/lib/utils/hooks/useConnectWallet/useConnectWallet.cjs +10 -1
- package/src/lib/utils/hooks/useConnectWallet/useConnectWallet.js +10 -1
- package/src/lib/utils/hooks/useCreateDynamicEmbeddedWalletMutation/useCreateDynamicEmbeddedWalletMutation.cjs +5 -2
- package/src/lib/utils/hooks/useCreateDynamicEmbeddedWalletMutation/useCreateDynamicEmbeddedWalletMutation.js +5 -2
- package/src/lib/utils/hooks/useEmbeddedWallet/useEmbeddedWallet.cjs +9 -6
- package/src/lib/utils/hooks/useEmbeddedWallet/useEmbeddedWallet.js +9 -6
- package/src/lib/utils/hooks/useIsTurnkeyWallet/useIsTurnkeyWallet.cjs +16 -1
- package/src/lib/utils/hooks/useIsTurnkeyWallet/useIsTurnkeyWallet.js +16 -1
- package/src/lib/utils/hooks/useSocialAuth/useSocialAuth.cjs +6 -1
- package/src/lib/utils/hooks/useSocialAuth/useSocialAuth.js +7 -2
- package/src/lib/utils/hooks/useWalletConnectorEvent/useWalletConnectorEvent.cjs +34 -5
- package/src/lib/utils/hooks/useWalletConnectorEvent/useWalletConnectorEvent.d.ts +33 -1
- package/src/lib/utils/hooks/useWalletConnectorEvent/useWalletConnectorEvent.js +34 -5
- package/src/lib/utils/hooks/useWalletConnectorOptions/useWalletConnectorOptions.cjs +2 -2
- package/src/lib/utils/hooks/useWalletConnectorOptions/useWalletConnectorOptions.js +2 -2
- package/src/lib/utils/hooks/useWalletConnectorOptions/utils/errors/ConnectorSetupError.cjs +13 -0
- package/src/lib/utils/hooks/useWalletConnectorOptions/utils/errors/ConnectorSetupError.d.ts +4 -0
- package/src/lib/utils/hooks/useWalletConnectorOptions/utils/errors/ConnectorSetupError.js +9 -0
- package/src/lib/utils/hooks/useWalletConnectorOptions/utils/errors/index.d.ts +1 -0
- package/src/lib/utils/hooks/useWalletConnectorOptions/utils/index.d.ts +1 -1
- package/src/lib/utils/hooks/useWalletConnectorOptions/utils/verifyMagicIsSetup/verifyMagicIsSetup.cjs +3 -5
- package/src/lib/utils/hooks/useWalletConnectorOptions/utils/verifyMagicIsSetup/verifyMagicIsSetup.d.ts +0 -3
- package/src/lib/utils/hooks/useWalletConnectorOptions/utils/verifyMagicIsSetup/verifyMagicIsSetup.js +4 -4
- package/src/lib/utils/hooks/useWalletConnectorOptions/utils/verifyRequiredConnectorsAreSetup/index.d.ts +1 -0
- package/src/lib/utils/hooks/useWalletConnectorOptions/utils/verifyRequiredConnectorsAreSetup/verifyRequiredConnectorsAreSetup.cjs +13 -0
- package/src/lib/utils/hooks/useWalletConnectorOptions/utils/verifyRequiredConnectorsAreSetup/verifyRequiredConnectorsAreSetup.d.ts +3 -0
- package/src/lib/utils/hooks/useWalletConnectorOptions/utils/verifyRequiredConnectorsAreSetup/verifyRequiredConnectorsAreSetup.js +9 -0
- package/src/lib/utils/hooks/useWalletConnectorOptions/utils/verifyZeroDevIsSetup/index.d.ts +1 -0
- package/src/lib/utils/hooks/useWalletConnectorOptions/utils/verifyZeroDevIsSetup/verifyZeroDevIsSetup.cjs +32 -0
- package/src/lib/utils/hooks/useWalletConnectorOptions/utils/verifyZeroDevIsSetup/verifyZeroDevIsSetup.d.ts +3 -0
- package/src/lib/utils/hooks/useWalletConnectorOptions/utils/verifyZeroDevIsSetup/verifyZeroDevIsSetup.js +28 -0
- package/src/lib/utils/hooks/useWalletConnectors/useWalletConnectors.cjs +7 -0
- package/src/lib/utils/hooks/useWalletConnectors/useWalletConnectors.js +7 -0
- package/src/lib/utils/hooks/useWalletConnectors/utils/createLinkedWalletsFromWalletOptions/createLinkedWalletsFromWalletOptions.cjs +1 -0
- package/src/lib/utils/hooks/useWalletConnectors/utils/createLinkedWalletsFromWalletOptions/createLinkedWalletsFromWalletOptions.js +1 -0
- package/src/lib/utils/hooks/useWalletConnectors/utils/updateUserWalletsFromLinkedWallets/index.d.ts +1 -0
- package/src/lib/utils/hooks/useWalletConnectors/utils/updateUserWalletsFromLinkedWallets/updateUserWalletsFromLinkedWallets.cjs +34 -0
- package/src/lib/utils/hooks/useWalletConnectors/utils/updateUserWalletsFromLinkedWallets/updateUserWalletsFromLinkedWallets.d.ts +8 -0
- package/src/lib/utils/hooks/useWalletConnectors/utils/updateUserWalletsFromLinkedWallets/updateUserWalletsFromLinkedWallets.js +30 -0
- package/src/lib/utils/hooks/useWalletEventListeners/useWalletEventListeners.cjs +4 -4
- package/src/lib/utils/hooks/useWalletEventListeners/useWalletEventListeners.js +4 -4
- package/src/lib/utils/hooks/useWalletUiUtils/useWalletUiUtils.cjs +3 -2
- package/src/lib/utils/hooks/useWalletUiUtils/useWalletUiUtils.js +3 -2
- package/src/lib/views/AccountExistsView/AccountExistsView.cjs +2 -1
- package/src/lib/views/AccountExistsView/AccountExistsView.js +2 -1
- package/src/lib/views/CaptchaVerifyUser/CaptchaVerifyUser.cjs +2 -1
- package/src/lib/views/CaptchaVerifyUser/CaptchaVerifyUser.js +2 -1
- package/src/lib/views/CollectUserDataView/CollectUserDataView.cjs +2 -1
- package/src/lib/views/CollectUserDataView/CollectUserDataView.js +2 -1
- package/src/lib/views/CollectUserDataView/OnboardingUserDataForm/OnboardingUserDataForm.cjs +2 -1
- package/src/lib/views/CollectUserDataView/OnboardingUserDataForm/OnboardingUserDataForm.js +2 -1
- package/src/lib/views/CollectUserDataView/UserDataFields/index.cjs +2 -1
- package/src/lib/views/CollectUserDataView/UserDataFields/index.js +2 -1
- package/src/lib/views/CollectUserDataViewLoginWithEmail/CollectUserDataViewLoginWithEmail.cjs +2 -1
- package/src/lib/views/CollectUserDataViewLoginWithEmail/CollectUserDataViewLoginWithEmail.js +2 -1
- package/src/lib/views/EmailConfirmationWaitingView/EmailConfirmationWaitingView.cjs +2 -1
- package/src/lib/views/EmailConfirmationWaitingView/EmailConfirmationWaitingView.js +2 -1
- package/src/lib/views/EmailUpdate/EmailUpdate.cjs +2 -1
- package/src/lib/views/EmailUpdate/EmailUpdate.js +2 -1
- package/src/lib/views/EmailVerification/EmailVerification.cjs +2 -1
- package/src/lib/views/EmailVerification/EmailVerification.js +2 -1
- package/src/lib/views/EmailWalletOTPVerificationView/EmailWalletOTPVerificationView.cjs +3 -2
- package/src/lib/views/EmailWalletOTPVerificationView/EmailWalletOTPVerificationView.js +3 -2
- package/src/lib/views/LoginView/sections/EmailSignInSection/LoginEmailForm.cjs +2 -1
- package/src/lib/views/LoginView/sections/EmailSignInSection/LoginEmailForm.js +2 -1
- package/src/lib/views/LoginView/sections/SocialSignInSection/DynamicSocialSignIn/DynamicSocialSignIn.cjs +2 -1
- package/src/lib/views/LoginView/sections/SocialSignInSection/DynamicSocialSignIn/DynamicSocialSignIn.js +2 -1
- package/src/lib/views/LoginView/sections/SocialSignInSection/MagicSocialSignIn/MagicSocialSignIn.cjs +2 -1
- package/src/lib/views/LoginView/sections/SocialSignInSection/MagicSocialSignIn/MagicSocialSignIn.js +2 -1
- package/src/lib/views/LoginView/sections/WalletSignInSection/ListItemButton/ListItemButton.cjs +2 -1
- package/src/lib/views/LoginView/sections/WalletSignInSection/ListItemButton/ListItemButton.js +2 -1
- package/src/lib/views/LoginView/sections/WalletSignInSection/WalletSignInSection.cjs +2 -1
- package/src/lib/views/LoginView/sections/WalletSignInSection/WalletSignInSection.js +2 -1
- package/src/lib/views/LoginView/useLoginView.cjs +5 -0
- package/src/lib/views/LoginView/useLoginView.js +5 -0
- package/src/lib/views/MergeUserAccountsView/MergeUserAccountsView.cjs +2 -1
- package/src/lib/views/MergeUserAccountsView/MergeUserAccountsView.js +2 -1
- package/src/lib/views/NetworkNotSupported/NetworkNotSupported.cjs +2 -1
- package/src/lib/views/NetworkNotSupported/NetworkNotSupported.js +2 -1
- package/src/lib/views/NetworkNotSupportedSwitchManual/NetworkNotSupportedSwitchManual.cjs +2 -1
- package/src/lib/views/NetworkNotSupportedSwitchManual/NetworkNotSupportedSwitchManual.js +2 -1
- package/src/lib/views/NoAccess/NoAccess.cjs +2 -1
- package/src/lib/views/NoAccess/NoAccess.js +2 -1
- package/src/lib/views/NoQrNotInstalledView/NoQrNotInstalledView.cjs +2 -1
- package/src/lib/views/NoQrNotInstalledView/NoQrNotInstalledView.js +2 -1
- package/src/lib/views/NoQrNotInstalledView/WalletHelpLink.cjs +2 -1
- package/src/lib/views/NoQrNotInstalledView/WalletHelpLink.js +2 -1
- package/src/lib/views/Passkey/PasskeyDeviceIcon/PasskeyDeviceIcon.cjs +2 -1
- package/src/lib/views/Passkey/PasskeyDeviceIcon/PasskeyDeviceIcon.js +2 -1
- package/src/lib/views/Passkey/PasskeyIntroView/PasskeyIntroView.cjs +2 -1
- package/src/lib/views/Passkey/PasskeyIntroView/PasskeyIntroView.js +2 -1
- package/src/lib/views/Passkey/PasskeyRecovery/BundleValidation/PasskeyBundleRecovery.cjs +15 -3
- package/src/lib/views/Passkey/PasskeyRecovery/BundleValidation/PasskeyBundleRecovery.js +16 -4
- package/src/lib/views/Passkey/PasskeyRecovery/CompleteRecovery/PasskeyCompleteRecovery.cjs +2 -1
- package/src/lib/views/Passkey/PasskeyRecovery/CompleteRecovery/PasskeyCompleteRecovery.js +2 -1
- package/src/lib/views/Passkey/PasskeyRecovery/InitRecovery/PasskeyInitRecovery.cjs +2 -1
- package/src/lib/views/Passkey/PasskeyRecovery/InitRecovery/PasskeyInitRecovery.js +2 -1
- package/src/lib/views/Passkey/utils/passkeyRecovery/passkeyRecovery.cjs +12 -7
- package/src/lib/views/Passkey/utils/passkeyRecovery/passkeyRecovery.d.ts +2 -1
- package/src/lib/views/Passkey/utils/passkeyRecovery/passkeyRecovery.js +12 -7
- package/src/lib/views/PendingConnectView/PendingConnectView.cjs +2 -1
- package/src/lib/views/PendingConnectView/PendingConnectView.js +2 -1
- package/src/lib/views/PendingSignatureView/PendingSignatureView.cjs +2 -1
- package/src/lib/views/PendingSignatureView/PendingSignatureView.js +2 -1
- package/src/lib/views/QrCodeView/QRCode.cjs +3 -2
- package/src/lib/views/QrCodeView/QRCode.js +3 -2
- package/src/lib/views/QrCodeView/QrCodeContainer/QrCodeContainer.cjs +2 -1
- package/src/lib/views/QrCodeView/QrCodeContainer/QrCodeContainer.js +2 -1
- package/src/lib/views/QrCodeView/QrCodeView.cjs +3 -2
- package/src/lib/views/QrCodeView/QrCodeView.js +3 -2
- package/src/lib/views/SendBalanceView/SendBalanceView.cjs +2 -1
- package/src/lib/views/SendBalanceView/SendBalanceView.js +2 -1
- package/src/lib/views/SendBalanceView/components/TransactionStage/TransactionStage.cjs +2 -2
- package/src/lib/views/SendBalanceView/components/TransactionStage/TransactionStage.js +2 -2
- package/src/lib/views/SocialRedirectView/SocialRedirectView.cjs +2 -1
- package/src/lib/views/SocialRedirectView/SocialRedirectView.js +2 -1
- package/src/lib/views/SocialWrongAccountView/SocialWrongAccountView.cjs +2 -1
- package/src/lib/views/SocialWrongAccountView/SocialWrongAccountView.js +2 -1
- package/src/lib/views/TransactionConfirmationView/TransactionConfirmationView.cjs +2 -2
- package/src/lib/views/TransactionConfirmationView/TransactionConfirmationView.js +2 -2
- package/src/lib/views/TransactionConfirmationView/helpers/transactionErrorMessage.cjs +6 -1
- package/src/lib/views/TransactionConfirmationView/helpers/transactionErrorMessage.d.ts +1 -1
- package/src/lib/views/TransactionConfirmationView/helpers/transactionErrorMessage.js +6 -1
- package/src/lib/views/TransactionConfirmationView/hooks/useTransactionGas/useTransactionGas.cjs +3 -2
- package/src/lib/views/TransactionConfirmationView/hooks/useTransactionGas/useTransactionGas.js +3 -2
- package/src/lib/views/UserFieldEditorView/UserFieldEditorView.cjs +2 -1
- package/src/lib/views/UserFieldEditorView/UserFieldEditorView.js +2 -1
- package/src/lib/views/WalletCannotBeTransferredView/WalletCannotBeTransferredView.cjs +2 -1
- package/src/lib/views/WalletCannotBeTransferredView/WalletCannotBeTransferredView.js +2 -1
- package/src/lib/views/WalletList/SearchNotFoundMessage/SearchNotFoundMessage.cjs +2 -1
- package/src/lib/views/WalletList/SearchNotFoundMessage/SearchNotFoundMessage.js +2 -1
- package/src/lib/views/WalletList/WalletListItem/WalletListItem.cjs +2 -1
- package/src/lib/views/WalletList/WalletListItem/WalletListItem.js +2 -1
- package/src/lib/views/WalletLockedView/WalletLockedView.cjs +2 -1
- package/src/lib/views/WalletLockedView/WalletLockedView.js +2 -1
- package/src/lib/views/WalletSignSpinnerView/WalletSignSpinnerView.cjs +2 -1
- package/src/lib/views/WalletSignSpinnerView/WalletSignSpinnerView.js +2 -1
- package/src/lib/views/WalletUsedView/WalletUsedView.cjs +2 -1
- package/src/lib/views/WalletUsedView/WalletUsedView.js +2 -1
- package/src/lib/widgets/DynamicBridgeWidget/DynamicBridgeWidget.cjs +2 -1
- package/src/lib/widgets/DynamicBridgeWidget/DynamicBridgeWidget.js +2 -1
- package/src/lib/widgets/DynamicBridgeWidget/components/DynamicBridgeUserProfile/DynamicBridgeUserProfile.cjs +2 -1
- package/src/lib/widgets/DynamicBridgeWidget/components/DynamicBridgeUserProfile/DynamicBridgeUserProfile.js +2 -1
- package/src/lib/widgets/DynamicBridgeWidget/components/DynamicBridgeWalletCard/DynamicBridgeWalletCard.cjs +2 -1
- package/src/lib/widgets/DynamicBridgeWidget/components/DynamicBridgeWalletCard/DynamicBridgeWalletCard.js +2 -1
- package/src/lib/widgets/DynamicBridgeWidget/components/DynamicBridgeWalletCardBody/DynamicBridgeWalletCardBody.cjs +2 -1
- package/src/lib/widgets/DynamicBridgeWidget/components/DynamicBridgeWalletCardBody/DynamicBridgeWalletCardBody.js +2 -1
- package/src/lib/widgets/DynamicBridgeWidget/components/DynamicBridgeWidgetEmptyCard/DynamicBridgeWidgetEmptyCard.cjs +2 -1
- package/src/lib/widgets/DynamicBridgeWidget/components/DynamicBridgeWidgetEmptyCard/DynamicBridgeWidgetEmptyCard.js +2 -1
- package/src/lib/widgets/DynamicBridgeWidget/views/WalletsView/WalletsView.cjs +2 -1
- package/src/lib/widgets/DynamicBridgeWidget/views/WalletsView/WalletsView.js +2 -1
- package/src/lib/widgets/DynamicEmbeddedWidget/DynamicEmbeddedAuthFlow/DynamicEmbeddedAuthFlow.cjs +2 -1
- package/src/lib/widgets/DynamicEmbeddedWidget/DynamicEmbeddedAuthFlow/DynamicEmbeddedAuthFlow.js +2 -1
- package/src/lib/widgets/DynamicEmbeddedWidget/DynamicEmbeddedUserProfile/DynamicEmbeddedUserProfile.cjs +3 -1
- package/src/lib/widgets/DynamicEmbeddedWidget/DynamicEmbeddedUserProfile/DynamicEmbeddedUserProfile.js +3 -1
- package/src/lib/widgets/DynamicWidget/DynamicWidget.cjs +2 -1
- package/src/lib/widgets/DynamicWidget/DynamicWidget.js +2 -1
- package/src/lib/widgets/DynamicWidget/components/AccountControl/AccountControl.cjs +2 -1
- package/src/lib/widgets/DynamicWidget/components/AccountControl/AccountControl.js +2 -1
- package/src/lib/widgets/DynamicWidget/components/ActiveWalletInformation/ActiveWalletInformation.cjs +2 -1
- package/src/lib/widgets/DynamicWidget/components/ActiveWalletInformation/ActiveWalletInformation.js +2 -1
- package/src/lib/widgets/DynamicWidget/components/Balance/Balance.cjs +2 -1
- package/src/lib/widgets/DynamicWidget/components/Balance/Balance.js +2 -1
- package/src/lib/widgets/DynamicWidget/components/DotsMenu/DotsMenu.cjs +2 -1
- package/src/lib/widgets/DynamicWidget/components/DotsMenu/DotsMenu.js +2 -1
- package/src/lib/widgets/DynamicWidget/components/DotsMenuDropdown/DotsMenuDropdown.cjs +2 -1
- package/src/lib/widgets/DynamicWidget/components/DotsMenuDropdown/DotsMenuDropdown.js +2 -1
- package/src/lib/widgets/DynamicWidget/components/DynamicNav/DynamicNav.cjs +2 -1
- package/src/lib/widgets/DynamicWidget/components/DynamicNav/DynamicNav.js +2 -1
- package/src/lib/widgets/DynamicWidget/components/DynamicUserProfile/DynamicUserProfile.cjs +3 -1
- package/src/lib/widgets/DynamicWidget/components/DynamicUserProfile/DynamicUserProfile.js +3 -1
- package/src/lib/widgets/DynamicWidget/components/DynamicWidgetHeader/DynamicWidgetHeader.cjs +3 -2
- package/src/lib/widgets/DynamicWidget/components/DynamicWidgetHeader/DynamicWidgetHeader.js +3 -2
- package/src/lib/widgets/DynamicWidget/components/DynamicWidgetHeader/DynamicWidgetWalletHeader/DynamicWidgetWalletHeader.cjs +3 -2
- package/src/lib/widgets/DynamicWidget/components/DynamicWidgetHeader/DynamicWidgetWalletHeader/DynamicWidgetWalletHeader.js +3 -2
- package/src/lib/widgets/DynamicWidget/components/DynamicWidgetVariants/variants/DynamicWidgetDropdown/DynamicWidgetDropdown.cjs +3 -2
- package/src/lib/widgets/DynamicWidget/components/DynamicWidgetVariants/variants/DynamicWidgetDropdown/DynamicWidgetDropdown.js +3 -2
- package/src/lib/widgets/DynamicWidget/components/DynamicWidgetVariants/variants/DynamicWidgetModal/DynamicWidgetModal.cjs +2 -1
- package/src/lib/widgets/DynamicWidget/components/DynamicWidgetVariants/variants/DynamicWidgetModal/DynamicWidgetModal.js +2 -1
- package/src/lib/widgets/DynamicWidget/components/DynamicWidgetWallets/DynamicWidgetWallets.cjs +2 -1
- package/src/lib/widgets/DynamicWidget/components/DynamicWidgetWallets/DynamicWidgetWallets.js +2 -1
- package/src/lib/widgets/DynamicWidget/components/EmailConnectorPendingSignModalContent/EmailConnectorPendingSignModalContent.cjs +2 -1
- package/src/lib/widgets/DynamicWidget/components/EmailConnectorPendingSignModalContent/EmailConnectorPendingSignModalContent.js +2 -1
- package/src/lib/widgets/DynamicWidget/components/EmailOTPConnectorPendingSignModalContent/EmailOTPConnectorPendingSignModalContent.cjs +2 -1
- package/src/lib/widgets/DynamicWidget/components/EmailOTPConnectorPendingSignModalContent/EmailOTPConnectorPendingSignModalContent.js +2 -1
- package/src/lib/widgets/DynamicWidget/components/EmptyWallets/EmptyWallets.cjs +2 -1
- package/src/lib/widgets/DynamicWidget/components/EmptyWallets/EmptyWallets.js +2 -1
- package/src/lib/widgets/DynamicWidget/components/SingleWalletButtons/SingleWalletButtons.cjs +2 -1
- package/src/lib/widgets/DynamicWidget/components/SingleWalletButtons/SingleWalletButtons.js +2 -1
- package/src/lib/widgets/DynamicWidget/components/UnknownWalletInformation/UnknownWalletInformation.cjs +2 -1
- package/src/lib/widgets/DynamicWidget/components/UnknownWalletInformation/UnknownWalletInformation.js +2 -1
- package/src/lib/widgets/DynamicWidget/components/Wallet/Wallet.cjs +2 -1
- package/src/lib/widgets/DynamicWidget/components/Wallet/Wallet.js +2 -1
- package/src/lib/widgets/DynamicWidget/components/WidgetPortal/WidgetPortal.cjs +2 -1
- package/src/lib/widgets/DynamicWidget/components/WidgetPortal/WidgetPortal.js +2 -1
- package/src/lib/widgets/DynamicWidget/context/DynamicWidgetContext.cjs +3 -2
- package/src/lib/widgets/DynamicWidget/context/DynamicWidgetContext.js +3 -2
- package/src/lib/widgets/DynamicWidget/helpers/helpers.cjs +7 -7
- package/src/lib/widgets/DynamicWidget/helpers/helpers.d.ts +1 -1
- package/src/lib/widgets/DynamicWidget/helpers/helpers.js +7 -7
- package/src/lib/widgets/DynamicWidget/prompts/DefaultPromptModal/DefaultPromptModal.cjs +2 -1
- package/src/lib/widgets/DynamicWidget/prompts/DefaultPromptModal/DefaultPromptModal.js +2 -1
- package/src/lib/widgets/DynamicWidget/prompts/DetectedNewWalletModal/DetectedNewWalletModal.cjs +2 -1
- package/src/lib/widgets/DynamicWidget/prompts/DetectedNewWalletModal/DetectedNewWalletModal.js +2 -1
- package/src/lib/widgets/DynamicWidget/prompts/NoQrNotInstalledModalView/NoQrNotInstalledModalView.cjs +2 -1
- package/src/lib/widgets/DynamicWidget/prompts/NoQrNotInstalledModalView/NoQrNotInstalledModalView.js +2 -1
- package/src/lib/widgets/DynamicWidget/prompts/PendingAccountSwitchModal/SwitchAccountView/SwitchAccountView.cjs +2 -1
- package/src/lib/widgets/DynamicWidget/prompts/PendingAccountSwitchModal/SwitchAccountView/SwitchAccountView.js +2 -1
- package/src/lib/widgets/DynamicWidget/prompts/PendingAccountSwitchModal/SwitchOrUseActiveAccountView/SwitchOrUseActiveAccountView.cjs +2 -1
- package/src/lib/widgets/DynamicWidget/prompts/PendingAccountSwitchModal/SwitchOrUseActiveAccountView/SwitchOrUseActiveAccountView.js +2 -1
- package/src/lib/widgets/DynamicWidget/prompts/PendingAccountSwitchToLinkModal/PendingAccountSwitchToLinkModal.cjs +2 -1
- package/src/lib/widgets/DynamicWidget/prompts/PendingAccountSwitchToLinkModal/PendingAccountSwitchToLinkModal.js +2 -1
- package/src/lib/widgets/DynamicWidget/prompts/PendingConnectionModal/PendingConnectionModal.cjs +2 -1
- package/src/lib/widgets/DynamicWidget/prompts/PendingConnectionModal/PendingConnectionModal.js +2 -1
- package/src/lib/widgets/DynamicWidget/prompts/PendingSignModal/DefaultPendingSignModalContent/DefaultPendingSignModalContent.cjs +2 -1
- package/src/lib/widgets/DynamicWidget/prompts/PendingSignModal/DefaultPendingSignModalContent/DefaultPendingSignModalContent.js +2 -1
- package/src/lib/widgets/DynamicWidget/prompts/PrimaryNotConnectedModal/PrimaryNotConnectedModal.cjs +2 -1
- package/src/lib/widgets/DynamicWidget/prompts/PrimaryNotConnectedModal/PrimaryNotConnectedModal.js +2 -1
- package/src/lib/widgets/DynamicWidget/prompts/QrCodeModalView/QrCodeModalView.cjs +2 -1
- package/src/lib/widgets/DynamicWidget/prompts/QrCodeModalView/QrCodeModalView.js +2 -1
- package/src/lib/widgets/DynamicWidget/prompts/UnlinkWalletPopUp/UnlinkWalletPopUp.cjs +2 -1
- package/src/lib/widgets/DynamicWidget/prompts/UnlinkWalletPopUp/UnlinkWalletPopUp.js +2 -1
- package/src/lib/widgets/DynamicWidget/views/EditProfileView/EditProfileView.cjs +2 -1
- package/src/lib/widgets/DynamicWidget/views/EditProfileView/EditProfileView.js +2 -1
- package/src/lib/widgets/DynamicWidget/views/ManagePasskeysWidgetView/ManagePasskeysWidgetView.cjs +2 -1
- package/src/lib/widgets/DynamicWidget/views/ManagePasskeysWidgetView/ManagePasskeysWidgetView.js +2 -1
- package/src/lib/widgets/DynamicWidget/views/ManagePasskeysWidgetView/PasskeyCard/PasskeyCard.cjs +2 -1
- package/src/lib/widgets/DynamicWidget/views/ManagePasskeysWidgetView/PasskeyCard/PasskeyCard.js +2 -1
- package/src/lib/widgets/DynamicWidget/views/ProfileView/ProfileView.cjs +2 -1
- package/src/lib/widgets/DynamicWidget/views/ProfileView/ProfileView.js +2 -1
- package/src/lib/widgets/DynamicWidget/views/WalletsView/WalletsView.cjs +2 -1
- package/src/lib/widgets/DynamicWidget/views/WalletsView/WalletsView.js +2 -1
- package/src/lib/widgets/FundingWidget/views/FundWalletView/FundWalletView.cjs +2 -1
- package/src/lib/widgets/FundingWidget/views/FundWalletView/FundWalletView.js +2 -1
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* This takes a userWallets and connectedWallets array, and returns a new userWallets array
|
|
7
|
+
* updated to match the connectedWallets array.
|
|
8
|
+
* It will add any missing wallets, update properties that don't match, and remove wallets that aren't
|
|
9
|
+
* in the connectedWallets and is not linked to the user.
|
|
10
|
+
*/
|
|
11
|
+
const updateUserWalletsFromConnectedWallets = (userWallets, connectedWallets) => {
|
|
12
|
+
const userWalletsCopy = [...userWallets];
|
|
13
|
+
/** We will use this to find wallets addresses that were removed */
|
|
14
|
+
const newWalletsAddresses = new Set();
|
|
15
|
+
// First pass: add missing wallets and update changed properties
|
|
16
|
+
for (const connectedWallet of connectedWallets) {
|
|
17
|
+
newWalletsAddresses.add(connectedWallet.address);
|
|
18
|
+
const userWallet = userWalletsCopy.find((wallet) => wallet.address === connectedWallet.address);
|
|
19
|
+
// Catch new wallets
|
|
20
|
+
if (!userWallet) {
|
|
21
|
+
userWalletsCopy.push(connectedWallet);
|
|
22
|
+
continue;
|
|
23
|
+
}
|
|
24
|
+
// If already present, just update properties that might have changed
|
|
25
|
+
userWallet.connected = connectedWallet.connected;
|
|
26
|
+
userWallet.network = connectedWallet.network;
|
|
27
|
+
}
|
|
28
|
+
// This filter is to remove a wallet that was previously added to userWallets but is not present
|
|
29
|
+
// among the connected wallets (it should not be removed if it's authenticated to the suer tho)
|
|
30
|
+
return userWalletsCopy.filter((userWallet) =>
|
|
31
|
+
// Keep wallets that are still in the new list
|
|
32
|
+
newWalletsAddresses.has(userWallet.address) ||
|
|
33
|
+
// Or are linked to the current user
|
|
34
|
+
userWallet.authenticated);
|
|
35
|
+
};
|
|
36
|
+
|
|
37
|
+
exports.updateUserWalletsFromConnectedWallets = updateUserWalletsFromConnectedWallets;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { Wallet } from '../../../../shared';
|
|
2
|
+
/**
|
|
3
|
+
* This takes a userWallets and connectedWallets array, and returns a new userWallets array
|
|
4
|
+
* updated to match the connectedWallets array.
|
|
5
|
+
* It will add any missing wallets, update properties that don't match, and remove wallets that aren't
|
|
6
|
+
* in the connectedWallets and is not linked to the user.
|
|
7
|
+
*/
|
|
8
|
+
export declare const updateUserWalletsFromConnectedWallets: (userWallets: Wallet[], connectedWallets: Wallet[]) => Wallet[];
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* This takes a userWallets and connectedWallets array, and returns a new userWallets array
|
|
3
|
+
* updated to match the connectedWallets array.
|
|
4
|
+
* It will add any missing wallets, update properties that don't match, and remove wallets that aren't
|
|
5
|
+
* in the connectedWallets and is not linked to the user.
|
|
6
|
+
*/
|
|
7
|
+
const updateUserWalletsFromConnectedWallets = (userWallets, connectedWallets) => {
|
|
8
|
+
const userWalletsCopy = [...userWallets];
|
|
9
|
+
/** We will use this to find wallets addresses that were removed */
|
|
10
|
+
const newWalletsAddresses = new Set();
|
|
11
|
+
// First pass: add missing wallets and update changed properties
|
|
12
|
+
for (const connectedWallet of connectedWallets) {
|
|
13
|
+
newWalletsAddresses.add(connectedWallet.address);
|
|
14
|
+
const userWallet = userWalletsCopy.find((wallet) => wallet.address === connectedWallet.address);
|
|
15
|
+
// Catch new wallets
|
|
16
|
+
if (!userWallet) {
|
|
17
|
+
userWalletsCopy.push(connectedWallet);
|
|
18
|
+
continue;
|
|
19
|
+
}
|
|
20
|
+
// If already present, just update properties that might have changed
|
|
21
|
+
userWallet.connected = connectedWallet.connected;
|
|
22
|
+
userWallet.network = connectedWallet.network;
|
|
23
|
+
}
|
|
24
|
+
// This filter is to remove a wallet that was previously added to userWallets but is not present
|
|
25
|
+
// among the connected wallets (it should not be removed if it's authenticated to the suer tho)
|
|
26
|
+
return userWalletsCopy.filter((userWallet) =>
|
|
27
|
+
// Keep wallets that are still in the new list
|
|
28
|
+
newWalletsAddresses.has(userWallet.address) ||
|
|
29
|
+
// Or are linked to the current user
|
|
30
|
+
userWallet.authenticated);
|
|
31
|
+
};
|
|
32
|
+
|
|
33
|
+
export { updateUserWalletsFromConnectedWallets };
|
|
@@ -5,6 +5,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
5
5
|
var _tslib = require('../../../../../_virtual/_tslib.cjs');
|
|
6
6
|
var React = require('react');
|
|
7
7
|
var walletConnectorCore = require('@dynamic-labs/wallet-connector-core');
|
|
8
|
+
var UserWalletsContext = require('../../../context/UserWalletsContext/UserWalletsContext.cjs');
|
|
8
9
|
var api = require('../../../data/api.cjs');
|
|
9
10
|
require('@dynamic-labs/sdk-api');
|
|
10
11
|
require('../../../shared/logger.cjs');
|
|
@@ -22,10 +23,17 @@ require('../../../shared/consts/index.cjs');
|
|
|
22
23
|
require('@dynamic-labs/multi-wallet');
|
|
23
24
|
var shouldManuallyReconnectOnRefresh = require('../../functions/shouldManuallyReconnectOnRefresh/shouldManuallyReconnectOnRefresh.cjs');
|
|
24
25
|
var getWalletProvider = require('../../functions/getWalletProvider/getWalletProvider.cjs');
|
|
26
|
+
var updateUserWalletsFromConnectedWallets = require('./updateUserWalletsFromConnectedWallets/updateUserWalletsFromConnectedWallets.cjs');
|
|
25
27
|
|
|
26
28
|
const useConnectWallet = ({ authMode, clearPrimaryWalletId, enableVisitTrackingOnConnectOnly, environmentId, primaryWalletId, setPrimaryWalletId, walletConnectorOptions, onDisconnect, onBeforeConnectSuccessConfirmation, setShowAuthFlow, isBridgeFlow, }) => {
|
|
27
29
|
const [connectedWalletsInfo, setConnectedWalletsInfo, removeConnectedWalletsInfo,] = useLocalStorage.useLocalStorage(localStorage.CONNECTED_WALLETS_INFO, []);
|
|
28
|
-
const [connectedWallets,
|
|
30
|
+
const [connectedWallets, _setConnectedWallets] = React.useState([]);
|
|
31
|
+
const { setUserWallets } = UserWalletsContext.useInternalUserWallets();
|
|
32
|
+
/** This wrapper is to ensure userWallets is always properly updated alongside connectedWallets */
|
|
33
|
+
const setConnectedWallets = (newWallets) => {
|
|
34
|
+
_setConnectedWallets(newWallets);
|
|
35
|
+
setUserWallets((userWallets) => updateUserWalletsFromConnectedWallets.updateUserWalletsFromConnectedWallets(userWallets, newWallets));
|
|
36
|
+
};
|
|
29
37
|
const disconnectWallet = React.useCallback((walletId) => _tslib.__awaiter(void 0, void 0, void 0, function* () {
|
|
30
38
|
const walletToDisconnect = connectedWallets.find((wallet) => wallet.id === walletId);
|
|
31
39
|
yield (walletToDisconnect === null || walletToDisconnect === void 0 ? void 0 : walletToDisconnect.connector.endSession());
|
|
@@ -79,6 +87,7 @@ const useConnectWallet = ({ authMode, clearPrimaryWalletId, enableVisitTrackingO
|
|
|
79
87
|
const walletChain = walletConnector.connectedChain;
|
|
80
88
|
const walletObject = {
|
|
81
89
|
address: walletAddress || '',
|
|
90
|
+
authenticated: false,
|
|
82
91
|
chain: walletChain || '',
|
|
83
92
|
connected: true,
|
|
84
93
|
connector: walletConnector,
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { __awaiter } from '../../../../../_virtual/_tslib.js';
|
|
2
2
|
import { useState, useCallback, useEffect } from 'react';
|
|
3
3
|
import { getWalletConnectorByKey, logger } from '@dynamic-labs/wallet-connector-core';
|
|
4
|
+
import { useInternalUserWallets } from '../../../context/UserWalletsContext/UserWalletsContext.js';
|
|
4
5
|
import { createVisit } from '../../../data/api.js';
|
|
5
6
|
import '@dynamic-labs/sdk-api';
|
|
6
7
|
import '../../../shared/logger.js';
|
|
@@ -18,10 +19,17 @@ import '../../../shared/consts/index.js';
|
|
|
18
19
|
import '@dynamic-labs/multi-wallet';
|
|
19
20
|
import { shouldManuallyReconnectOnRefresh } from '../../functions/shouldManuallyReconnectOnRefresh/shouldManuallyReconnectOnRefresh.js';
|
|
20
21
|
import { getWalletProvider } from '../../functions/getWalletProvider/getWalletProvider.js';
|
|
22
|
+
import { updateUserWalletsFromConnectedWallets } from './updateUserWalletsFromConnectedWallets/updateUserWalletsFromConnectedWallets.js';
|
|
21
23
|
|
|
22
24
|
const useConnectWallet = ({ authMode, clearPrimaryWalletId, enableVisitTrackingOnConnectOnly, environmentId, primaryWalletId, setPrimaryWalletId, walletConnectorOptions, onDisconnect, onBeforeConnectSuccessConfirmation, setShowAuthFlow, isBridgeFlow, }) => {
|
|
23
25
|
const [connectedWalletsInfo, setConnectedWalletsInfo, removeConnectedWalletsInfo,] = useLocalStorage(CONNECTED_WALLETS_INFO, []);
|
|
24
|
-
const [connectedWallets,
|
|
26
|
+
const [connectedWallets, _setConnectedWallets] = useState([]);
|
|
27
|
+
const { setUserWallets } = useInternalUserWallets();
|
|
28
|
+
/** This wrapper is to ensure userWallets is always properly updated alongside connectedWallets */
|
|
29
|
+
const setConnectedWallets = (newWallets) => {
|
|
30
|
+
_setConnectedWallets(newWallets);
|
|
31
|
+
setUserWallets((userWallets) => updateUserWalletsFromConnectedWallets(userWallets, newWallets));
|
|
32
|
+
};
|
|
25
33
|
const disconnectWallet = useCallback((walletId) => __awaiter(void 0, void 0, void 0, function* () {
|
|
26
34
|
const walletToDisconnect = connectedWallets.find((wallet) => wallet.id === walletId);
|
|
27
35
|
yield (walletToDisconnect === null || walletToDisconnect === void 0 ? void 0 : walletToDisconnect.connector.endSession());
|
|
@@ -75,6 +83,7 @@ const useConnectWallet = ({ authMode, clearPrimaryWalletId, enableVisitTrackingO
|
|
|
75
83
|
const walletChain = walletConnector.connectedChain;
|
|
76
84
|
const walletObject = {
|
|
77
85
|
address: walletAddress || '',
|
|
86
|
+
authenticated: false,
|
|
78
87
|
chain: walletChain || '',
|
|
79
88
|
connected: true,
|
|
80
89
|
connector: walletConnector,
|
|
@@ -29,7 +29,7 @@ var useMutation = require('../useMutation/useMutation.cjs');
|
|
|
29
29
|
const useCreateDynamicEmbeddedWalletMutation = () => {
|
|
30
30
|
const { setPrimaryWalletId, internalEvents, setCallback, setUser, user, setShowAuthFlow, } = useInternalDynamicContext.useInternalDynamicContext();
|
|
31
31
|
const { mutate: createDynamicEmbeddedWalletMutation, isLoading, error, } = useMutation.useMutation(({ authToken, decodedJwt, environmentId, walletConnectorOptions, withAuthenticator, }) => _tslib.__awaiter(void 0, void 0, void 0, function* () {
|
|
32
|
-
var _a;
|
|
32
|
+
var _a, _b;
|
|
33
33
|
const createEmbeddedWalletMethodToUse = withAuthenticator
|
|
34
34
|
? createEmbeddedWalletWithPasskey.createEmbeddedWalletWithPasskey
|
|
35
35
|
: createPregeneratedWallet.createPregeneratedWallet;
|
|
@@ -39,8 +39,12 @@ const useCreateDynamicEmbeddedWalletMutation = () => {
|
|
|
39
39
|
user: user !== null && user !== void 0 ? user : createUserProfile.createUserProfile(decodedJwt),
|
|
40
40
|
walletConnector: findPasskeyEmailWalletConnector.findPasskeyEmailWalletConnector(walletConnectorOptions),
|
|
41
41
|
});
|
|
42
|
+
const turnkeyVerifiedCredentials = (_a = updatedDecodedJwt === null || updatedDecodedJwt === void 0 ? void 0 : updatedDecodedJwt.verifiedCredentials) === null || _a === void 0 ? void 0 : _a.find(({ walletName }) => walletName === null || walletName === void 0 ? void 0 : walletName.startsWith('turnkey'));
|
|
43
|
+
/** It's not authenticated if it's a turnkey wallet that still hasn't created a passkey */
|
|
44
|
+
const authenticated = Boolean((_b = turnkeyVerifiedCredentials === null || turnkeyVerifiedCredentials === void 0 ? void 0 : turnkeyVerifiedCredentials.walletProperties) === null || _b === void 0 ? void 0 : _b.isAuthenticatorAttached);
|
|
42
45
|
const passkeyWallet = {
|
|
43
46
|
address: (yield walletConnector.fetchPublicAddress()) || '',
|
|
47
|
+
authenticated,
|
|
44
48
|
chain: walletConnector.connectedChain || '',
|
|
45
49
|
connected: true,
|
|
46
50
|
connector: walletConnector,
|
|
@@ -62,7 +66,6 @@ const useCreateDynamicEmbeddedWalletMutation = () => {
|
|
|
62
66
|
index.storeAuthToken(jwt);
|
|
63
67
|
setUser(createUserProfile.createUserProfile(updatedDecodedJwt));
|
|
64
68
|
setShowAuthFlow(false);
|
|
65
|
-
const turnkeyVerifiedCredentials = (_a = updatedDecodedJwt === null || updatedDecodedJwt === void 0 ? void 0 : updatedDecodedJwt.verifiedCredentials) === null || _a === void 0 ? void 0 : _a.find(({ walletName }) => walletName === null || walletName === void 0 ? void 0 : walletName.startsWith('turnkey'));
|
|
66
69
|
setCallback('embeddedWalletCreated', {
|
|
67
70
|
email: (turnkeyVerifiedCredentials === null || turnkeyVerifiedCredentials === void 0 ? void 0 : turnkeyVerifiedCredentials.email) || '',
|
|
68
71
|
verifiedCredential: turnkeyVerifiedCredentials,
|
|
@@ -25,7 +25,7 @@ import { useMutation } from '../useMutation/useMutation.js';
|
|
|
25
25
|
const useCreateDynamicEmbeddedWalletMutation = () => {
|
|
26
26
|
const { setPrimaryWalletId, internalEvents, setCallback, setUser, user, setShowAuthFlow, } = useInternalDynamicContext();
|
|
27
27
|
const { mutate: createDynamicEmbeddedWalletMutation, isLoading, error, } = useMutation(({ authToken, decodedJwt, environmentId, walletConnectorOptions, withAuthenticator, }) => __awaiter(void 0, void 0, void 0, function* () {
|
|
28
|
-
var _a;
|
|
28
|
+
var _a, _b;
|
|
29
29
|
const createEmbeddedWalletMethodToUse = withAuthenticator
|
|
30
30
|
? createEmbeddedWalletWithPasskey
|
|
31
31
|
: createPregeneratedWallet;
|
|
@@ -35,8 +35,12 @@ const useCreateDynamicEmbeddedWalletMutation = () => {
|
|
|
35
35
|
user: user !== null && user !== void 0 ? user : createUserProfile(decodedJwt),
|
|
36
36
|
walletConnector: findPasskeyEmailWalletConnector(walletConnectorOptions),
|
|
37
37
|
});
|
|
38
|
+
const turnkeyVerifiedCredentials = (_a = updatedDecodedJwt === null || updatedDecodedJwt === void 0 ? void 0 : updatedDecodedJwt.verifiedCredentials) === null || _a === void 0 ? void 0 : _a.find(({ walletName }) => walletName === null || walletName === void 0 ? void 0 : walletName.startsWith('turnkey'));
|
|
39
|
+
/** It's not authenticated if it's a turnkey wallet that still hasn't created a passkey */
|
|
40
|
+
const authenticated = Boolean((_b = turnkeyVerifiedCredentials === null || turnkeyVerifiedCredentials === void 0 ? void 0 : turnkeyVerifiedCredentials.walletProperties) === null || _b === void 0 ? void 0 : _b.isAuthenticatorAttached);
|
|
38
41
|
const passkeyWallet = {
|
|
39
42
|
address: (yield walletConnector.fetchPublicAddress()) || '',
|
|
43
|
+
authenticated,
|
|
40
44
|
chain: walletConnector.connectedChain || '',
|
|
41
45
|
connected: true,
|
|
42
46
|
connector: walletConnector,
|
|
@@ -58,7 +62,6 @@ const useCreateDynamicEmbeddedWalletMutation = () => {
|
|
|
58
62
|
storeAuthToken(jwt);
|
|
59
63
|
setUser(createUserProfile(updatedDecodedJwt));
|
|
60
64
|
setShowAuthFlow(false);
|
|
61
|
-
const turnkeyVerifiedCredentials = (_a = updatedDecodedJwt === null || updatedDecodedJwt === void 0 ? void 0 : updatedDecodedJwt.verifiedCredentials) === null || _a === void 0 ? void 0 : _a.find(({ walletName }) => walletName === null || walletName === void 0 ? void 0 : walletName.startsWith('turnkey'));
|
|
62
65
|
setCallback('embeddedWalletCreated', {
|
|
63
66
|
email: (turnkeyVerifiedCredentials === null || turnkeyVerifiedCredentials === void 0 ? void 0 : turnkeyVerifiedCredentials.email) || '',
|
|
64
67
|
verifiedCredential: turnkeyVerifiedCredentials,
|
|
@@ -79,7 +79,7 @@ const useEmbeddedWallet = () => {
|
|
|
79
79
|
});
|
|
80
80
|
});
|
|
81
81
|
const returnEmbeddedWallet = (jwt, embeddedWalletVerifiedCredential) => _tslib.__awaiter(void 0, void 0, void 0, function* () {
|
|
82
|
-
var _a, _b, _c;
|
|
82
|
+
var _a, _b, _c, _d;
|
|
83
83
|
const decodedJwt = decodeJwt.decodeJwt(jwt);
|
|
84
84
|
const turnkeyWallet = findTurnkeyWallet.findTurnkeyWallet(walletConnectorOptions);
|
|
85
85
|
// if user already has embedded wallet, set it as primary wallet
|
|
@@ -98,9 +98,12 @@ const useEmbeddedWallet = () => {
|
|
|
98
98
|
setPrimaryWalletId(embeddedWalletVerifiedCredential.id);
|
|
99
99
|
}
|
|
100
100
|
}
|
|
101
|
+
/** It's not authenticated if it still hasn't created a passkey */
|
|
102
|
+
const authenticated = Boolean((_b = embeddedWalletVerifiedCredential.walletProperties) === null || _b === void 0 ? void 0 : _b.isAuthenticatorAttached);
|
|
101
103
|
const passkeyWallet = {
|
|
102
|
-
address: (yield ((
|
|
103
|
-
|
|
104
|
+
address: (yield ((_c = turnkeyWallet === null || turnkeyWallet === void 0 ? void 0 : turnkeyWallet.walletConnector) === null || _c === void 0 ? void 0 : _c.fetchPublicAddress())) || '',
|
|
105
|
+
authenticated,
|
|
106
|
+
chain: ((_d = turnkeyWallet === null || turnkeyWallet === void 0 ? void 0 : turnkeyWallet.walletConnector) === null || _d === void 0 ? void 0 : _d.connectedChain) || '',
|
|
104
107
|
connected: true,
|
|
105
108
|
connector: (turnkeyWallet === null || turnkeyWallet === void 0 ? void 0 : turnkeyWallet.walletConnector) || {},
|
|
106
109
|
id: embeddedWalletVerifiedCredential.id,
|
|
@@ -108,8 +111,8 @@ const useEmbeddedWallet = () => {
|
|
|
108
111
|
return Promise.resolve(passkeyWallet);
|
|
109
112
|
});
|
|
110
113
|
const createEmbeddedWallet = React.useCallback(() => _tslib.__awaiter(void 0, void 0, void 0, function* () {
|
|
111
|
-
var
|
|
112
|
-
const jwt = (
|
|
114
|
+
var _e, _f, _g;
|
|
115
|
+
const jwt = (_e = getAuthToken.getAuthToken()) !== null && _e !== void 0 ? _e : onboardingOnlyJwt;
|
|
113
116
|
const decodedJwt = decodeJwt.decodeJwt(jwt);
|
|
114
117
|
if (!jwt || !decodedJwt) {
|
|
115
118
|
throw new Error('User is not logged in');
|
|
@@ -120,7 +123,7 @@ const useEmbeddedWallet = () => {
|
|
|
120
123
|
const userWaletsCredentials = getUserWalletsFromVerifiedCredentials.getUserWalletsFromVerifiedCredentials(jwt);
|
|
121
124
|
// if user doesn't have a wallet yet, show the passkey view to create an embedded wallet
|
|
122
125
|
if (!(userWaletsCredentials === null || userWaletsCredentials === void 0 ? void 0 : userWaletsCredentials.length)) {
|
|
123
|
-
if (((
|
|
126
|
+
if (((_g = (_f = projectSettings === null || projectSettings === void 0 ? void 0 : projectSettings.sdk.embeddedWalletSecurityMethods) === null || _f === void 0 ? void 0 : _f.length) !== null && _g !== void 0 ? _g : 0) === 0) {
|
|
124
127
|
return startPregeneratedWalletCreationFlow(jwt, decodedJwt);
|
|
125
128
|
}
|
|
126
129
|
return startEmbeddedWalletCreationFlow();
|
|
@@ -75,7 +75,7 @@ const useEmbeddedWallet = () => {
|
|
|
75
75
|
});
|
|
76
76
|
});
|
|
77
77
|
const returnEmbeddedWallet = (jwt, embeddedWalletVerifiedCredential) => __awaiter(void 0, void 0, void 0, function* () {
|
|
78
|
-
var _a, _b, _c;
|
|
78
|
+
var _a, _b, _c, _d;
|
|
79
79
|
const decodedJwt = decodeJwt(jwt);
|
|
80
80
|
const turnkeyWallet = findTurnkeyWallet(walletConnectorOptions);
|
|
81
81
|
// if user already has embedded wallet, set it as primary wallet
|
|
@@ -94,9 +94,12 @@ const useEmbeddedWallet = () => {
|
|
|
94
94
|
setPrimaryWalletId(embeddedWalletVerifiedCredential.id);
|
|
95
95
|
}
|
|
96
96
|
}
|
|
97
|
+
/** It's not authenticated if it still hasn't created a passkey */
|
|
98
|
+
const authenticated = Boolean((_b = embeddedWalletVerifiedCredential.walletProperties) === null || _b === void 0 ? void 0 : _b.isAuthenticatorAttached);
|
|
97
99
|
const passkeyWallet = {
|
|
98
|
-
address: (yield ((
|
|
99
|
-
|
|
100
|
+
address: (yield ((_c = turnkeyWallet === null || turnkeyWallet === void 0 ? void 0 : turnkeyWallet.walletConnector) === null || _c === void 0 ? void 0 : _c.fetchPublicAddress())) || '',
|
|
101
|
+
authenticated,
|
|
102
|
+
chain: ((_d = turnkeyWallet === null || turnkeyWallet === void 0 ? void 0 : turnkeyWallet.walletConnector) === null || _d === void 0 ? void 0 : _d.connectedChain) || '',
|
|
100
103
|
connected: true,
|
|
101
104
|
connector: (turnkeyWallet === null || turnkeyWallet === void 0 ? void 0 : turnkeyWallet.walletConnector) || {},
|
|
102
105
|
id: embeddedWalletVerifiedCredential.id,
|
|
@@ -104,8 +107,8 @@ const useEmbeddedWallet = () => {
|
|
|
104
107
|
return Promise.resolve(passkeyWallet);
|
|
105
108
|
});
|
|
106
109
|
const createEmbeddedWallet = useCallback(() => __awaiter(void 0, void 0, void 0, function* () {
|
|
107
|
-
var
|
|
108
|
-
const jwt = (
|
|
110
|
+
var _e, _f, _g;
|
|
111
|
+
const jwt = (_e = getAuthToken()) !== null && _e !== void 0 ? _e : onboardingOnlyJwt;
|
|
109
112
|
const decodedJwt = decodeJwt(jwt);
|
|
110
113
|
if (!jwt || !decodedJwt) {
|
|
111
114
|
throw new Error('User is not logged in');
|
|
@@ -116,7 +119,7 @@ const useEmbeddedWallet = () => {
|
|
|
116
119
|
const userWaletsCredentials = getUserWalletsFromVerifiedCredentials(jwt);
|
|
117
120
|
// if user doesn't have a wallet yet, show the passkey view to create an embedded wallet
|
|
118
121
|
if (!(userWaletsCredentials === null || userWaletsCredentials === void 0 ? void 0 : userWaletsCredentials.length)) {
|
|
119
|
-
if (((
|
|
122
|
+
if (((_g = (_f = projectSettings === null || projectSettings === void 0 ? void 0 : projectSettings.sdk.embeddedWalletSecurityMethods) === null || _f === void 0 ? void 0 : _f.length) !== null && _g !== void 0 ? _g : 0) === 0) {
|
|
120
123
|
return startPregeneratedWalletCreationFlow(jwt, decodedJwt);
|
|
121
124
|
}
|
|
122
125
|
return startEmbeddedWalletCreationFlow();
|
|
@@ -22,10 +22,25 @@ const useIsTurnkeyWallet = () => {
|
|
|
22
22
|
}
|
|
23
23
|
return turnkeyVC;
|
|
24
24
|
};
|
|
25
|
+
const getUnclaimedTurnkeyTheSignerOfScw = () => {
|
|
26
|
+
if (!primaryWallet || !user) {
|
|
27
|
+
return false;
|
|
28
|
+
}
|
|
29
|
+
const unclaimedTurnkeyVc = user.verifiedCredentials.find((vc) => {
|
|
30
|
+
var _a, _b;
|
|
31
|
+
return ((_a = vc.walletName) === null || _a === void 0 ? void 0 : _a.startsWith('turnkey')) &&
|
|
32
|
+
((_b = vc.walletProperties) === null || _b === void 0 ? void 0 : _b.isAuthenticatorAttached) === false;
|
|
33
|
+
});
|
|
34
|
+
const smartContractWalletWithUnclaimedTurnkeySigner = user.verifiedCredentials.find((vc) => unclaimedTurnkeyVc && vc.signerRefId === unclaimedTurnkeyVc.id);
|
|
35
|
+
return smartContractWalletWithUnclaimedTurnkeySigner;
|
|
36
|
+
};
|
|
25
37
|
const turnkeyVerifiedCredential = getTurnkeyVerifiedCredential();
|
|
38
|
+
const unclaimedTurnkeyTheSignerOfScw = getUnclaimedTurnkeyTheSignerOfScw();
|
|
26
39
|
const isTurnkeyWallet = Boolean(turnkeyVerifiedCredential);
|
|
40
|
+
const isUnclaimedTurnkeyTheSignerOfScw = Boolean(unclaimedTurnkeyTheSignerOfScw);
|
|
27
41
|
const hasTurnkeyVerifiedCredentialAuthenticator = Boolean((_a = turnkeyVerifiedCredential === null || turnkeyVerifiedCredential === void 0 ? void 0 : turnkeyVerifiedCredential.walletProperties) === null || _a === void 0 ? void 0 : _a.isAuthenticatorAttached);
|
|
28
|
-
const isTurnkeyWalletWithoutAuthenticator = isTurnkeyWallet && !hasTurnkeyVerifiedCredentialAuthenticator
|
|
42
|
+
const isTurnkeyWalletWithoutAuthenticator = (isTurnkeyWallet && !hasTurnkeyVerifiedCredentialAuthenticator) ||
|
|
43
|
+
isUnclaimedTurnkeyTheSignerOfScw;
|
|
29
44
|
return {
|
|
30
45
|
hasTurnkeyVerifiedCredentialAuthenticator,
|
|
31
46
|
isTurnkeyWallet,
|
|
@@ -18,10 +18,25 @@ const useIsTurnkeyWallet = () => {
|
|
|
18
18
|
}
|
|
19
19
|
return turnkeyVC;
|
|
20
20
|
};
|
|
21
|
+
const getUnclaimedTurnkeyTheSignerOfScw = () => {
|
|
22
|
+
if (!primaryWallet || !user) {
|
|
23
|
+
return false;
|
|
24
|
+
}
|
|
25
|
+
const unclaimedTurnkeyVc = user.verifiedCredentials.find((vc) => {
|
|
26
|
+
var _a, _b;
|
|
27
|
+
return ((_a = vc.walletName) === null || _a === void 0 ? void 0 : _a.startsWith('turnkey')) &&
|
|
28
|
+
((_b = vc.walletProperties) === null || _b === void 0 ? void 0 : _b.isAuthenticatorAttached) === false;
|
|
29
|
+
});
|
|
30
|
+
const smartContractWalletWithUnclaimedTurnkeySigner = user.verifiedCredentials.find((vc) => unclaimedTurnkeyVc && vc.signerRefId === unclaimedTurnkeyVc.id);
|
|
31
|
+
return smartContractWalletWithUnclaimedTurnkeySigner;
|
|
32
|
+
};
|
|
21
33
|
const turnkeyVerifiedCredential = getTurnkeyVerifiedCredential();
|
|
34
|
+
const unclaimedTurnkeyTheSignerOfScw = getUnclaimedTurnkeyTheSignerOfScw();
|
|
22
35
|
const isTurnkeyWallet = Boolean(turnkeyVerifiedCredential);
|
|
36
|
+
const isUnclaimedTurnkeyTheSignerOfScw = Boolean(unclaimedTurnkeyTheSignerOfScw);
|
|
23
37
|
const hasTurnkeyVerifiedCredentialAuthenticator = Boolean((_a = turnkeyVerifiedCredential === null || turnkeyVerifiedCredential === void 0 ? void 0 : turnkeyVerifiedCredential.walletProperties) === null || _a === void 0 ? void 0 : _a.isAuthenticatorAttached);
|
|
24
|
-
const isTurnkeyWalletWithoutAuthenticator = isTurnkeyWallet && !hasTurnkeyVerifiedCredentialAuthenticator
|
|
38
|
+
const isTurnkeyWalletWithoutAuthenticator = (isTurnkeyWallet && !hasTurnkeyVerifiedCredentialAuthenticator) ||
|
|
39
|
+
isUnclaimedTurnkeyTheSignerOfScw;
|
|
25
40
|
return {
|
|
26
41
|
hasTurnkeyVerifiedCredentialAuthenticator,
|
|
27
42
|
isTurnkeyWallet,
|
|
@@ -308,6 +308,11 @@ const useSocialAuth = ({ sessionTimeout, authMode, onSettled, onError, }) => {
|
|
|
308
308
|
// start pooling oauth result
|
|
309
309
|
shouldPool.current = true;
|
|
310
310
|
poolOauthResult(provider, state);
|
|
311
|
+
// if this is mobile, set a longer timeout to allow the user to login to the provider in the browser
|
|
312
|
+
let authWindowTimeout = sessionTimeout;
|
|
313
|
+
if (utils.isMobile()) {
|
|
314
|
+
authWindowTimeout = authWindowTimeout * 3;
|
|
315
|
+
}
|
|
311
316
|
authWindowInterval.current = setInterval(() => _tslib.__awaiter(void 0, void 0, void 0, function* () {
|
|
312
317
|
var _g;
|
|
313
318
|
shouldPool.current = false;
|
|
@@ -319,7 +324,7 @@ const useSocialAuth = ({ sessionTimeout, authMode, onSettled, onError, }) => {
|
|
|
319
324
|
clearInterval(authWindowInterval.current);
|
|
320
325
|
setIsProcessing(false);
|
|
321
326
|
onSettled === null || onSettled === void 0 ? void 0 : onSettled();
|
|
322
|
-
}),
|
|
327
|
+
}), authWindowTimeout);
|
|
323
328
|
}
|
|
324
329
|
});
|
|
325
330
|
return {
|
|
@@ -2,7 +2,7 @@ import { __awaiter } from '../../../../../_virtual/_tslib.js';
|
|
|
2
2
|
import { useState, useRef } from 'react';
|
|
3
3
|
import { OauthResultStatus } from '@dynamic-labs/sdk-api';
|
|
4
4
|
import { SocialOAuthErrorCode } from '@dynamic-labs/types';
|
|
5
|
-
import { SocialAccountAlreadyExistsError, NoAccessError } from '@dynamic-labs/utils';
|
|
5
|
+
import { isMobile, SocialAccountAlreadyExistsError, NoAccessError } from '@dynamic-labs/utils';
|
|
6
6
|
import { useInternalDynamicContext } from '../../../context/DynamicContext/useInternalDynamicContext.js';
|
|
7
7
|
import { getOAuthResult, verifyOAuth, signInOAuth } from '../../../data/api.js';
|
|
8
8
|
import { useUpdateUserProfileByJWTCallback } from '../useUpdateUserProfileByJWTCallback/useUpdateUserProfileByJWTCallback.js';
|
|
@@ -304,6 +304,11 @@ const useSocialAuth = ({ sessionTimeout, authMode, onSettled, onError, }) => {
|
|
|
304
304
|
// start pooling oauth result
|
|
305
305
|
shouldPool.current = true;
|
|
306
306
|
poolOauthResult(provider, state);
|
|
307
|
+
// if this is mobile, set a longer timeout to allow the user to login to the provider in the browser
|
|
308
|
+
let authWindowTimeout = sessionTimeout;
|
|
309
|
+
if (isMobile()) {
|
|
310
|
+
authWindowTimeout = authWindowTimeout * 3;
|
|
311
|
+
}
|
|
307
312
|
authWindowInterval.current = setInterval(() => __awaiter(void 0, void 0, void 0, function* () {
|
|
308
313
|
var _g;
|
|
309
314
|
shouldPool.current = false;
|
|
@@ -315,7 +320,7 @@ const useSocialAuth = ({ sessionTimeout, authMode, onSettled, onError, }) => {
|
|
|
315
320
|
clearInterval(authWindowInterval.current);
|
|
316
321
|
setIsProcessing(false);
|
|
317
322
|
onSettled === null || onSettled === void 0 ? void 0 : onSettled();
|
|
318
|
-
}),
|
|
323
|
+
}), authWindowTimeout);
|
|
319
324
|
}
|
|
320
325
|
});
|
|
321
326
|
return {
|
|
@@ -3,13 +3,42 @@
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
5
|
var React = require('react');
|
|
6
|
-
var useIsomorphicLayoutEffect = require('../useIsomorphicLayoutEffect/useIsomorphicLayoutEffect.cjs');
|
|
7
6
|
|
|
7
|
+
/**
|
|
8
|
+
* Hook for handling events from a WalletConnector or an array of WalletConnectors.
|
|
9
|
+
* This hook allows you to specify an event to listen to and a handler function that will be called
|
|
10
|
+
* whenever the event is emitted. The handler will receive the event arguments followed by the instance
|
|
11
|
+
* of the WalletConnector that emitted the event.
|
|
12
|
+
*
|
|
13
|
+
* @template Event - The type of the event to listen for, which should be a key of WalletConnectorEventTypes.
|
|
14
|
+
*
|
|
15
|
+
* @param eventEmitters - The WalletConnector instance(s) to attach the event listener to.
|
|
16
|
+
* If an array is provided, the event listener is attached to all provided connectors.
|
|
17
|
+
* @param eventName - The name of the event to listen for.
|
|
18
|
+
* @param handler - The callback function to execute when the event is emitted.
|
|
19
|
+
* The arguments to the callback are the arguments emitted with the event, followed by the WalletConnector instance
|
|
20
|
+
* that emitted the event.
|
|
21
|
+
*
|
|
22
|
+
* @returns {void} This hook does not return anything.
|
|
23
|
+
*
|
|
24
|
+
* @example
|
|
25
|
+
* // Example usage of useWalletConnectorEvent
|
|
26
|
+
* const { primaryWallet } = useDynamicContext();
|
|
27
|
+
*
|
|
28
|
+
* useWalletConnectorEvent(
|
|
29
|
+
* primaryWallet?.connector,
|
|
30
|
+
* 'accountChange',
|
|
31
|
+
* ({ accounts }, connector) => {
|
|
32
|
+
* console.group('accountChange');
|
|
33
|
+
* console.log('accounts', accounts);
|
|
34
|
+
* console.log('connector that emitted', connector);
|
|
35
|
+
* console.groupEnd();
|
|
36
|
+
* },
|
|
37
|
+
* );
|
|
38
|
+
*/
|
|
8
39
|
const useWalletConnectorEvent = (eventEmitters, eventName, handler) => {
|
|
9
40
|
const callbackRef = React.useRef(handler);
|
|
10
|
-
|
|
11
|
-
callbackRef.current = handler;
|
|
12
|
-
}, [handler]);
|
|
41
|
+
callbackRef.current = handler;
|
|
13
42
|
React.useEffect(() => {
|
|
14
43
|
if (!eventEmitters)
|
|
15
44
|
return;
|
|
@@ -24,7 +53,7 @@ const useWalletConnectorEvent = (eventEmitters, eventName, handler) => {
|
|
|
24
53
|
const uniqueEventEmitters = Array.from(new Set(eventEmittersArray));
|
|
25
54
|
const unsubscribeCallbacks = uniqueEventEmitters.map((emitter) => {
|
|
26
55
|
const callback = (...args) => {
|
|
27
|
-
callbackRef.current(
|
|
56
|
+
callbackRef.current(...args, emitter);
|
|
28
57
|
};
|
|
29
58
|
emitter.on(eventName, callback);
|
|
30
59
|
return () => emitter.off(eventName, callback);
|
|
@@ -8,5 +8,37 @@ type ArgumentMap<T extends object> = {
|
|
|
8
8
|
[K in keyof T]: T[K] extends (...args: any[]) => void ? Parameters<T[K]> : T[K] extends any[] ? T[K] : any[];
|
|
9
9
|
};
|
|
10
10
|
type EventArg<Event extends keyof WalletConnectorEventTypes> = ArgumentMap<WalletConnectorEventTypes>[Extract<Event, keyof WalletConnectorEventTypes>];
|
|
11
|
-
|
|
11
|
+
/**
|
|
12
|
+
* Hook for handling events from a WalletConnector or an array of WalletConnectors.
|
|
13
|
+
* This hook allows you to specify an event to listen to and a handler function that will be called
|
|
14
|
+
* whenever the event is emitted. The handler will receive the event arguments followed by the instance
|
|
15
|
+
* of the WalletConnector that emitted the event.
|
|
16
|
+
*
|
|
17
|
+
* @template Event - The type of the event to listen for, which should be a key of WalletConnectorEventTypes.
|
|
18
|
+
*
|
|
19
|
+
* @param eventEmitters - The WalletConnector instance(s) to attach the event listener to.
|
|
20
|
+
* If an array is provided, the event listener is attached to all provided connectors.
|
|
21
|
+
* @param eventName - The name of the event to listen for.
|
|
22
|
+
* @param handler - The callback function to execute when the event is emitted.
|
|
23
|
+
* The arguments to the callback are the arguments emitted with the event, followed by the WalletConnector instance
|
|
24
|
+
* that emitted the event.
|
|
25
|
+
*
|
|
26
|
+
* @returns {void} This hook does not return anything.
|
|
27
|
+
*
|
|
28
|
+
* @example
|
|
29
|
+
* // Example usage of useWalletConnectorEvent
|
|
30
|
+
* const { primaryWallet } = useDynamicContext();
|
|
31
|
+
*
|
|
32
|
+
* useWalletConnectorEvent(
|
|
33
|
+
* primaryWallet?.connector,
|
|
34
|
+
* 'accountChange',
|
|
35
|
+
* ({ accounts }, connector) => {
|
|
36
|
+
* console.group('accountChange');
|
|
37
|
+
* console.log('accounts', accounts);
|
|
38
|
+
* console.log('connector that emitted', connector);
|
|
39
|
+
* console.groupEnd();
|
|
40
|
+
* },
|
|
41
|
+
* );
|
|
42
|
+
*/
|
|
43
|
+
export declare const useWalletConnectorEvent: <Event_1 extends keyof WalletConnectorEventTypes = keyof WalletConnectorEventTypes>(eventEmitters: WalletConnector | WalletConnector[] | undefined, eventName: Event_1, handler: (...args: [...EventArg<Event_1>, import("@dynamic-labs/wallet-connector-core").WalletConnectorCore.WalletConnector]) => void) => void;
|
|
12
44
|
export {};
|
|
@@ -1,11 +1,40 @@
|
|
|
1
1
|
import { useRef, useEffect } from 'react';
|
|
2
|
-
import { useIsomorphicLayoutEffect } from '../useIsomorphicLayoutEffect/useIsomorphicLayoutEffect.js';
|
|
3
2
|
|
|
3
|
+
/**
|
|
4
|
+
* Hook for handling events from a WalletConnector or an array of WalletConnectors.
|
|
5
|
+
* This hook allows you to specify an event to listen to and a handler function that will be called
|
|
6
|
+
* whenever the event is emitted. The handler will receive the event arguments followed by the instance
|
|
7
|
+
* of the WalletConnector that emitted the event.
|
|
8
|
+
*
|
|
9
|
+
* @template Event - The type of the event to listen for, which should be a key of WalletConnectorEventTypes.
|
|
10
|
+
*
|
|
11
|
+
* @param eventEmitters - The WalletConnector instance(s) to attach the event listener to.
|
|
12
|
+
* If an array is provided, the event listener is attached to all provided connectors.
|
|
13
|
+
* @param eventName - The name of the event to listen for.
|
|
14
|
+
* @param handler - The callback function to execute when the event is emitted.
|
|
15
|
+
* The arguments to the callback are the arguments emitted with the event, followed by the WalletConnector instance
|
|
16
|
+
* that emitted the event.
|
|
17
|
+
*
|
|
18
|
+
* @returns {void} This hook does not return anything.
|
|
19
|
+
*
|
|
20
|
+
* @example
|
|
21
|
+
* // Example usage of useWalletConnectorEvent
|
|
22
|
+
* const { primaryWallet } = useDynamicContext();
|
|
23
|
+
*
|
|
24
|
+
* useWalletConnectorEvent(
|
|
25
|
+
* primaryWallet?.connector,
|
|
26
|
+
* 'accountChange',
|
|
27
|
+
* ({ accounts }, connector) => {
|
|
28
|
+
* console.group('accountChange');
|
|
29
|
+
* console.log('accounts', accounts);
|
|
30
|
+
* console.log('connector that emitted', connector);
|
|
31
|
+
* console.groupEnd();
|
|
32
|
+
* },
|
|
33
|
+
* );
|
|
34
|
+
*/
|
|
4
35
|
const useWalletConnectorEvent = (eventEmitters, eventName, handler) => {
|
|
5
36
|
const callbackRef = useRef(handler);
|
|
6
|
-
|
|
7
|
-
callbackRef.current = handler;
|
|
8
|
-
}, [handler]);
|
|
37
|
+
callbackRef.current = handler;
|
|
9
38
|
useEffect(() => {
|
|
10
39
|
if (!eventEmitters)
|
|
11
40
|
return;
|
|
@@ -20,7 +49,7 @@ const useWalletConnectorEvent = (eventEmitters, eventName, handler) => {
|
|
|
20
49
|
const uniqueEventEmitters = Array.from(new Set(eventEmittersArray));
|
|
21
50
|
const unsubscribeCallbacks = uniqueEventEmitters.map((emitter) => {
|
|
22
51
|
const callback = (...args) => {
|
|
23
|
-
callbackRef.current(
|
|
52
|
+
callbackRef.current(...args, emitter);
|
|
24
53
|
};
|
|
25
54
|
emitter.on(eventName, callback);
|
|
26
55
|
return () => emitter.off(eventName, callback);
|
|
@@ -4,7 +4,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
4
4
|
|
|
5
5
|
var React = require('react');
|
|
6
6
|
var data = require('../../../views/WalletList/data.cjs');
|
|
7
|
-
var
|
|
7
|
+
var verifyRequiredConnectorsAreSetup = require('./utils/verifyRequiredConnectorsAreSetup/verifyRequiredConnectorsAreSetup.cjs');
|
|
8
8
|
|
|
9
9
|
const useWalletConnectorOptions = ({ projectSettings, appLogoUrl, appName, deepLinkPreference, flowNetwork, networkConfigurations, walletBook, walletConnectV1Bridge, walletUiUtils, walletConnectorsProp, walletConnectPreferredChains, walletConnectorExtensions, }) => {
|
|
10
10
|
const walletConnectorOptions = React.useMemo(() => {
|
|
@@ -44,7 +44,7 @@ const useWalletConnectorOptions = ({ projectSettings, appLogoUrl, appName, deepL
|
|
|
44
44
|
React.useEffect(() => {
|
|
45
45
|
if (!projectSettings || walletConnectorOptions.length === 0)
|
|
46
46
|
return;
|
|
47
|
-
|
|
47
|
+
verifyRequiredConnectorsAreSetup.verifyRequiredConnectorsAreSetup(projectSettings, walletConnectorOptions.map(({ walletConnector }) => walletConnector));
|
|
48
48
|
}, [walletConnectorOptions, projectSettings]);
|
|
49
49
|
return { walletConnectorOptions };
|
|
50
50
|
};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { useMemo, useEffect } from 'react';
|
|
2
2
|
import { getWallets } from '../../../views/WalletList/data.js';
|
|
3
|
-
import {
|
|
3
|
+
import { verifyRequiredConnectorsAreSetup } from './utils/verifyRequiredConnectorsAreSetup/verifyRequiredConnectorsAreSetup.js';
|
|
4
4
|
|
|
5
5
|
const useWalletConnectorOptions = ({ projectSettings, appLogoUrl, appName, deepLinkPreference, flowNetwork, networkConfigurations, walletBook, walletConnectV1Bridge, walletUiUtils, walletConnectorsProp, walletConnectPreferredChains, walletConnectorExtensions, }) => {
|
|
6
6
|
const walletConnectorOptions = useMemo(() => {
|
|
@@ -40,7 +40,7 @@ const useWalletConnectorOptions = ({ projectSettings, appLogoUrl, appName, deepL
|
|
|
40
40
|
useEffect(() => {
|
|
41
41
|
if (!projectSettings || walletConnectorOptions.length === 0)
|
|
42
42
|
return;
|
|
43
|
-
|
|
43
|
+
verifyRequiredConnectorsAreSetup(projectSettings, walletConnectorOptions.map(({ walletConnector }) => walletConnector));
|
|
44
44
|
}, [walletConnectorOptions, projectSettings]);
|
|
45
45
|
return { walletConnectorOptions };
|
|
46
46
|
};
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var utils = require('@dynamic-labs/utils');
|
|
6
|
+
|
|
7
|
+
class ConnectorSetupError extends utils.DynamicError {
|
|
8
|
+
constructor(providerName, connectorName) {
|
|
9
|
+
super(`${providerName} is enabled but ${connectorName} is not in your walletConnectors list. See https://docs.dynamic.xyz/react-sdk/wallet-connectors for more information.`);
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
exports.ConnectorSetupError = ConnectorSetupError;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { DynamicError } from '@dynamic-labs/utils';
|
|
2
|
+
|
|
3
|
+
class ConnectorSetupError extends DynamicError {
|
|
4
|
+
constructor(providerName, connectorName) {
|
|
5
|
+
super(`${providerName} is enabled but ${connectorName} is not in your walletConnectors list. See https://docs.dynamic.xyz/react-sdk/wallet-connectors for more information.`);
|
|
6
|
+
}
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
export { ConnectorSetupError };
|