@dynamic-labs/sdk-react-core 3.0.0-alpha.51 → 3.0.0-alpha.53
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 +51 -0
- package/package.cjs +1 -1
- package/package.js +1 -1
- package/package.json +13 -13
- package/src/index.cjs +7 -5
- package/src/index.d.ts +1 -1
- package/src/index.js +4 -3
- package/src/lib/components/AuthProviderIcon/AuthProviderIcon.cjs +17 -16
- package/src/lib/components/AuthProviderIcon/AuthProviderIcon.js +18 -17
- package/src/lib/components/Divider/Divider.cjs +2 -2
- package/src/lib/components/Divider/Divider.d.ts +2 -2
- package/src/lib/components/Divider/Divider.js +3 -3
- package/src/lib/components/IconWithSpinner/IconWithSpinner.cjs +1 -1
- package/src/lib/components/IconWithSpinner/IconWithSpinner.js +1 -1
- package/src/lib/components/IconWithSpinner/Spinner/Spinner.cjs +1 -1
- package/src/lib/components/IconWithSpinner/Spinner/Spinner.js +1 -1
- package/src/lib/components/IconWithStatus/IconWithStatus.cjs +1 -1
- package/src/lib/components/IconWithStatus/IconWithStatus.js +1 -1
- package/src/lib/components/NeedHelpSection/NeedHelpSection.cjs +5 -4
- package/src/lib/components/NeedHelpSection/NeedHelpSection.js +6 -5
- package/src/lib/components/QrCodeWrapper/QrCodeWrapper.cjs +1 -1
- package/src/lib/components/QrCodeWrapper/QrCodeWrapper.js +1 -1
- package/src/lib/components/SecureEmbeddedWalletCard/SecureEmbeddedWalletCard.cjs +11 -10
- package/src/lib/components/SecureEmbeddedWalletCard/SecureEmbeddedWalletCard.js +12 -11
- package/src/lib/components/SendBalancePageLayout/SendBalancePageLayout.cjs +1 -1
- package/src/lib/components/SendBalancePageLayout/SendBalancePageLayout.js +1 -1
- package/src/lib/components/SendBalancePageLayout/components/TokensBalanceDropdown/TokensBalanceDropdown.cjs +6 -1
- package/src/lib/components/SendBalancePageLayout/components/TokensBalanceDropdown/TokensBalanceDropdown.js +6 -1
- package/src/lib/components/TransactionConfirmationPageLayout/TransactionConfirmationPageLayout.cjs +1 -1
- package/src/lib/components/TransactionConfirmationPageLayout/TransactionConfirmationPageLayout.d.ts +0 -1
- package/src/lib/components/TransactionConfirmationPageLayout/TransactionConfirmationPageLayout.js +1 -1
- package/src/lib/context/DynamicContext/DynamicContext.cjs +11 -16
- package/src/lib/context/DynamicContext/DynamicContext.js +11 -16
- package/src/lib/context/DynamicContext/hooks/useEmailLoginState/useEmailLoginState.cjs +1 -1
- package/src/lib/context/DynamicContext/hooks/useEmailLoginState/useEmailLoginState.js +1 -1
- package/src/lib/context/DynamicContext/hooks/useHandleLogout/types.d.ts +2 -2
- package/src/lib/context/DynamicContext/types/DynamicContextProps.d.ts +7 -0
- package/src/lib/context/DynamicContext/types/IDynamicContext.d.ts +4 -5
- package/src/lib/context/DynamicContext/types/SettingsOverrides.d.ts +3 -2
- package/src/lib/context/PhantomRedirectContext/PhantomRedirectContext.d.ts +2 -2
- package/src/lib/context/ReinitializeContext/ReinitializeContextProvider.cjs +1 -1
- package/src/lib/context/ReinitializeContext/ReinitializeContextProvider.js +1 -1
- package/src/lib/context/SocialRedirectContext/SocialRedirectContext.d.ts +2 -2
- package/src/lib/context/UserWalletsContext/UserWalletsContext.d.ts +1 -1
- package/src/lib/context/WalletContext/WalletContext.cjs +1 -84
- package/src/lib/context/WalletContext/WalletContext.d.ts +1 -2
- package/src/lib/context/WalletContext/WalletContext.js +1 -84
- package/src/lib/context/WidgetRegistry/WidgetRegistryContextProvider.cjs +1 -1
- package/src/lib/context/WidgetRegistry/WidgetRegistryContextProvider.js +1 -1
- package/src/lib/data/api/api.cjs +1 -1
- package/src/lib/data/api/api.js +1 -1
- package/src/lib/locale/en/translation.cjs +39 -5
- package/src/lib/locale/en/translation.d.ts +39 -5
- package/src/lib/locale/en/translation.js +39 -5
- package/src/lib/modals/SendBalanceModal/SendBalanceModal.cjs +1 -1
- package/src/lib/modals/SendBalanceModal/SendBalanceModal.js +1 -1
- package/src/lib/modals/SignMessageConfirmationModal/SignMessageConfirmationModal.cjs +10 -9
- package/src/lib/modals/SignMessageConfirmationModal/SignMessageConfirmationModal.js +11 -10
- package/src/lib/modals/SyncWalletPromptModal/SyncWalletPromptModal.cjs +4 -4
- package/src/lib/modals/SyncWalletPromptModal/SyncWalletPromptModal.d.ts +1 -1
- package/src/lib/modals/SyncWalletPromptModal/SyncWalletPromptModal.js +4 -4
- package/src/lib/modals/SyncWalletPromptModal/SyncWalletPromptModal.types.d.ts +2 -0
- package/src/lib/shared/assets/arrow-circle-right.cjs +54 -0
- package/src/lib/shared/assets/arrow-circle-right.js +30 -0
- package/src/lib/shared/assets/index.d.ts +1 -0
- package/src/lib/shared/types/wallets.d.ts +2 -2
- package/src/lib/shared/utils/functions/usingSessionKeys/usingSessionKeys.cjs +1 -1
- package/src/lib/shared/utils/functions/usingSessionKeys/usingSessionKeys.js +2 -2
- package/src/lib/shared/utils/functions/wallet/createWallet.d.ts +2 -2
- package/src/lib/store/hooks/useNetworkConfigurations/useNetworkConfigurations.cjs +19 -4
- package/src/lib/store/hooks/useNetworkConfigurations/useNetworkConfigurations.d.ts +4 -3
- package/src/lib/store/hooks/useNetworkConfigurations/useNetworkConfigurations.js +19 -4
- package/src/lib/store/utils/storeAuthTokenAndUser/storeAuthTokenAndUser.cjs +1 -1
- package/src/lib/store/utils/storeAuthTokenAndUser/storeAuthTokenAndUser.js +1 -1
- package/src/lib/styles/index.shadow.cjs +1 -1
- package/src/lib/styles/index.shadow.js +1 -1
- package/src/lib/utils/constants/errors.cjs +0 -2
- package/src/lib/utils/constants/errors.js +1 -2
- package/src/lib/utils/functions/findTurnkeyWallet/findTurnkeyWallet.d.ts +2 -2
- package/src/lib/utils/{hooks/useWalletConnectors/utils/findWallet/findWallet.cjs → functions/findWalletOptionFor/findWalletOptionFor.cjs} +3 -3
- package/src/lib/utils/functions/findWalletOptionFor/findWalletOptionFor.d.ts +3 -0
- package/src/lib/utils/{hooks/useWalletConnectors/utils/findWallet/findWallet.js → functions/findWalletOptionFor/findWalletOptionFor.js} +3 -3
- package/src/lib/utils/functions/findWalletOptionFor/index.d.ts +1 -0
- package/src/lib/utils/functions/generateMessages/index.cjs +3 -2
- package/src/lib/utils/functions/generateMessages/index.js +3 -2
- package/src/lib/utils/functions/getEmbeddedWalletAuthHandler/getEmbeddedWalletAuthHandler.d.ts +2 -2
- package/src/lib/utils/functions/getEnabledEmbeddedWalletProviders/getEnabledEmbeddedWalletProviders.cjs +1 -1
- package/src/lib/utils/functions/getEnabledEmbeddedWalletProviders/getEnabledEmbeddedWalletProviders.js +1 -1
- package/src/lib/utils/functions/getUserIdentifier/getUserIdentifier.cjs +1 -1
- package/src/lib/utils/functions/getUserIdentifier/getUserIdentifier.js +1 -1
- package/src/lib/utils/functions/getVerifyArgs/getVerifyArgs.d.ts +1 -2
- package/src/lib/utils/functions/getWalletConnectorForWallet/getWalletConnectorForWallet.d.ts +2 -2
- package/src/lib/utils/functions/index.d.ts +0 -2
- package/src/lib/utils/functions/isAccountAbstractionWallet/isAccountAbstractionWallet.d.ts +1 -1
- package/src/lib/utils/functions/isAllowedToLinkWallet/isAllowedToLinkWallet.cjs +1 -1
- package/src/lib/utils/functions/isAllowedToLinkWallet/isAllowedToLinkWallet.js +1 -1
- package/src/lib/utils/functions/isPhoneNumberProviderEnabled/isPhoneNumberProviderEnabled.cjs +1 -1
- package/src/lib/utils/functions/isPhoneNumberProviderEnabled/isPhoneNumberProviderEnabled.js +1 -1
- package/src/lib/utils/functions/requiresPasswordForEmbeddedWalletOnSignup/requiresPasswordForEmbeddedWalletOnSignup.cjs +1 -1
- package/src/lib/utils/functions/requiresPasswordForEmbeddedWalletOnSignup/requiresPasswordForEmbeddedWalletOnSignup.js +1 -1
- package/src/lib/utils/hooks/authenticationHooks/useConnectAndSign/useConnectAndSign.d.ts +2 -2
- package/src/lib/utils/hooks/authenticationHooks/useConnectAndSignSplitSteps/useConnectAndSignSplitSteps.d.ts +2 -2
- package/src/lib/utils/hooks/index.d.ts +1 -0
- package/src/lib/utils/hooks/multiWallet/index.d.ts +0 -1
- package/src/lib/utils/hooks/useConnectWallet/useConnectWallet.cjs +8 -7
- package/src/lib/utils/hooks/useConnectWallet/useConnectWallet.d.ts +2 -2
- package/src/lib/utils/hooks/useConnectWallet/useConnectWallet.js +9 -8
- package/src/lib/utils/hooks/useConnectWithEmail/useConnectWithEmail.d.ts +2 -2
- package/src/lib/utils/hooks/useConnectedAccountWallet/useConnectedAccountWallet.d.ts +1 -1
- package/src/lib/utils/hooks/useCreateDynamicEmbeddedWalletMutation/useCreateDynamicEmbeddedWalletMutation.cjs +3 -4
- package/src/lib/utils/hooks/useCreateDynamicEmbeddedWalletMutation/useCreateDynamicEmbeddedWalletMutation.js +3 -4
- package/src/lib/utils/hooks/useEmbeddedWallet/useEmbeddedWallet.d.ts +1 -1
- package/src/lib/utils/hooks/useEmbeddedWallet/useMPCEmbeddedWallet/useCoinbaseMPC/useCoinbaseMPC.cjs +4 -6
- package/src/lib/utils/hooks/useEmbeddedWallet/useMPCEmbeddedWallet/useCoinbaseMPC/useCoinbaseMPC.d.ts +1 -1
- package/src/lib/utils/hooks/useEmbeddedWallet/useMPCEmbeddedWallet/useCoinbaseMPC/useCoinbaseMPC.js +5 -7
- package/src/lib/utils/hooks/useEmbeddedWallet/useSecureEnclaveEmbeddedWallet/useSecureEnclaveEmbeddedWallet.cjs +86 -61
- package/src/lib/utils/hooks/useEmbeddedWallet/useSecureEnclaveEmbeddedWallet/useSecureEnclaveEmbeddedWallet.d.ts +3 -3
- package/src/lib/utils/hooks/useEmbeddedWallet/useSecureEnclaveEmbeddedWallet/useSecureEnclaveEmbeddedWallet.js +87 -63
- package/src/lib/utils/hooks/useEmbeddedWallet/useSecureEnclaveEmbeddedWallet/useTurnkey/useTurnkey.cjs +32 -30
- package/src/lib/utils/hooks/useEmbeddedWallet/useSecureEnclaveEmbeddedWallet/useTurnkey/useTurnkey.d.ts +1 -1
- package/src/lib/utils/hooks/useEmbeddedWallet/useSecureEnclaveEmbeddedWallet/useTurnkey/useTurnkey.js +33 -31
- package/src/lib/utils/hooks/useEmbeddedWalletAuthenticator/useEmbeddedWalletAuthenticator.d.ts +1 -1
- package/src/lib/utils/hooks/useInitEmbeddedWalletAuthMethod/useInitEmbeddedWalletAuthMethod.cjs +7 -6
- package/src/lib/utils/hooks/useInitEmbeddedWalletAuthMethod/useInitEmbeddedWalletAuthMethod.js +7 -6
- package/src/lib/utils/hooks/useIsLoggedIn/useIsLoggedIn.cjs +11 -9
- package/src/lib/utils/hooks/useIsLoggedIn/useIsLoggedIn.js +12 -10
- package/src/lib/utils/hooks/useIsTurnkeyWallet/useIsTurnkeyWallet.cjs +8 -12
- package/src/lib/utils/hooks/useIsTurnkeyWallet/useIsTurnkeyWallet.js +8 -12
- package/src/lib/utils/hooks/useNetworkDataFromWallet/useNetworkDataFromWallet.cjs +1 -1
- package/src/lib/utils/hooks/useNetworkDataFromWallet/useNetworkDataFromWallet.js +1 -1
- package/src/lib/utils/hooks/useNetworkNotSupported/useNetworkNotSupported.cjs +6 -5
- package/src/lib/utils/hooks/useNetworkNotSupported/useNetworkNotSupported.js +6 -5
- package/src/lib/utils/hooks/usePasskeyRecovery/usePasskeyRecovery.cjs +12 -11
- package/src/lib/utils/hooks/usePasskeyRecovery/usePasskeyRecovery.d.ts +2 -2
- package/src/lib/utils/hooks/usePasskeyRecovery/usePasskeyRecovery.js +12 -11
- package/src/lib/utils/hooks/usePrimaryWalletId/usePrimaryWalletId.cjs +3 -3
- package/src/lib/utils/hooks/usePrimaryWalletId/usePrimaryWalletId.js +3 -3
- package/src/lib/utils/hooks/useSmartWallets/index.d.ts +1 -0
- package/src/lib/utils/hooks/useSmartWallets/useSmartWallets.cjs +159 -0
- package/src/lib/utils/hooks/useSmartWallets/useSmartWallets.d.ts +18 -0
- package/src/lib/utils/hooks/useSmartWallets/useSmartWallets.js +155 -0
- package/src/lib/utils/hooks/useSwitchWallet/useSwitchWallet.cjs +1 -4
- package/src/lib/utils/hooks/useSwitchWallet/useSwitchWallet.js +1 -4
- package/src/lib/utils/hooks/useWalletConnectorOptions/useWalletConnectorOptions.cjs +1 -1
- package/src/lib/utils/hooks/useWalletConnectorOptions/useWalletConnectorOptions.d.ts +2 -2
- package/src/lib/utils/hooks/useWalletConnectorOptions/useWalletConnectorOptions.js +1 -1
- package/src/lib/utils/hooks/useWalletConnectorOptions/utils/verifyMagicIsSetup/verifyMagicIsSetup.cjs +1 -1
- package/src/lib/utils/hooks/useWalletConnectorOptions/utils/verifyMagicIsSetup/verifyMagicIsSetup.js +1 -1
- package/src/lib/utils/hooks/useWalletConnectorOptions/utils/verifyZeroDevIsSetup/verifyZeroDevIsSetup.cjs +1 -1
- package/src/lib/utils/hooks/useWalletConnectorOptions/utils/verifyZeroDevIsSetup/verifyZeroDevIsSetup.js +1 -1
- package/src/lib/utils/hooks/useWalletConnectors/reconnectSocialWallet.cjs +7 -87
- package/src/lib/utils/hooks/useWalletConnectors/reconnectSocialWallet.d.ts +2 -2
- package/src/lib/utils/hooks/useWalletConnectors/reconnectSocialWallet.js +8 -88
- package/src/lib/utils/hooks/useWalletConnectors/useWalletConnectors.cjs +9 -79
- package/src/lib/utils/hooks/useWalletConnectors/useWalletConnectors.d.ts +4 -10
- package/src/lib/utils/hooks/useWalletConnectors/useWalletConnectors.js +10 -80
- package/src/lib/utils/hooks/useWalletConnectors/utils/createLinkedWalletsFromWalletOptions/createLinkedWalletsFromWalletOptions.cjs +5 -89
- package/src/lib/utils/hooks/useWalletConnectors/utils/createLinkedWalletsFromWalletOptions/createLinkedWalletsFromWalletOptions.d.ts +2 -3
- package/src/lib/utils/hooks/useWalletConnectors/utils/createLinkedWalletsFromWalletOptions/createLinkedWalletsFromWalletOptions.js +5 -89
- package/src/lib/utils/hooks/useWalletConnectors/utils/smartWallet/smartWallet.cjs +4 -4
- package/src/lib/utils/hooks/useWalletConnectors/utils/smartWallet/smartWallet.js +5 -5
- package/src/lib/utils/hooks/useWalletEventListeners/useWalletEventListeners.cjs +26 -29
- package/src/lib/utils/hooks/useWalletEventListeners/useWalletEventListeners.d.ts +2 -1
- package/src/lib/utils/hooks/useWalletEventListeners/useWalletEventListeners.js +26 -29
- package/src/lib/utils/hooks/useWalletItemActions/useWalletItemActions.cjs +1 -1
- package/src/lib/utils/hooks/useWalletItemActions/useWalletItemActions.d.ts +6 -6
- package/src/lib/utils/hooks/useWalletItemActions/useWalletItemActions.js +1 -1
- package/src/lib/utils/hooks/useWalletItemActions/useWalletItemActions.types.d.ts +4 -4
- package/src/lib/utils/hooks/useWalletUiUtils/useWalletUiUtils.cjs +16 -7
- package/src/lib/utils/hooks/useWalletUiUtils/useWalletUiUtils.d.ts +2 -2
- package/src/lib/utils/hooks/useWalletUiUtils/useWalletUiUtils.js +16 -7
- package/src/lib/views/CollectUserDataView/UserDataFields/UserField/UserField.cjs +1 -1
- package/src/lib/views/CollectUserDataView/UserDataFields/UserField/UserField.js +1 -1
- package/src/lib/views/CreatePasswordView/SavePasswordStep/SavePasswordStep.cjs +2 -2
- package/src/lib/views/CreatePasswordView/SavePasswordStep/SavePasswordStep.js +2 -2
- package/src/lib/views/EmailVerification/EmailVerification.cjs +19 -18
- package/src/lib/views/EmailVerification/EmailVerification.js +20 -19
- package/src/lib/views/EmbeddedReveal/EmbeddedRevealView/EmbeddedRevealView.cjs +52 -52
- package/src/lib/views/EmbeddedReveal/EmbeddedRevealView/EmbeddedRevealView.js +53 -53
- package/src/lib/views/LoginView/sections/WalletSignInSection/ListItemButton/ListItemButton.cjs +1 -1
- package/src/lib/views/LoginView/sections/WalletSignInSection/ListItemButton/ListItemButton.js +1 -1
- package/src/lib/views/MfaDisplayBackupCodesView/MfaDisplayBackupCodesView.cjs +1 -1
- package/src/lib/views/MfaDisplayBackupCodesView/MfaDisplayBackupCodesView.js +1 -1
- package/src/lib/views/Passkey/EmbeddedAuthChoice/EmbeddedAuthChoice.cjs +35 -33
- package/src/lib/views/Passkey/EmbeddedAuthChoice/EmbeddedAuthChoice.d.ts +1 -1
- package/src/lib/views/Passkey/EmbeddedAuthChoice/EmbeddedAuthChoice.js +35 -33
- package/src/lib/views/Passkey/EmbeddedAuthChoiceCards/ActionCard/ActionCard.cjs +1 -1
- package/src/lib/views/Passkey/EmbeddedAuthChoiceCards/ActionCard/ActionCard.js +1 -1
- package/src/lib/views/Passkey/PasskeyNewDomainDetectedView/PasskeyNewDomainDetectedView.cjs +1 -1
- package/src/lib/views/Passkey/PasskeyNewDomainDetectedView/PasskeyNewDomainDetectedView.js +1 -1
- package/src/lib/views/Passkey/PasskeyRecovery/BundleValidation/PasskeyBundleRecovery.cjs +35 -33
- package/src/lib/views/Passkey/PasskeyRecovery/BundleValidation/PasskeyBundleRecovery.d.ts +1 -1
- package/src/lib/views/Passkey/PasskeyRecovery/BundleValidation/PasskeyBundleRecovery.js +35 -33
- package/src/lib/views/Passkey/PasskeyRecovery/CompleteRecovery/PasskeyCompleteRecovery.cjs +33 -31
- package/src/lib/views/Passkey/PasskeyRecovery/CompleteRecovery/PasskeyCompleteRecovery.js +33 -31
- package/src/lib/views/Passkey/PasskeyRecovery/InitRecovery/PasskeyInitRecovery.cjs +1 -1
- package/src/lib/views/Passkey/PasskeyRecovery/InitRecovery/PasskeyInitRecovery.js +1 -1
- package/src/lib/views/SendBalanceView/SendBalanceView.cjs +7 -1
- package/src/lib/views/SendBalanceView/SendBalanceView.js +7 -1
- package/src/lib/{utils/functions/getEOAWallet/getEOAWallet.cjs → views/SyncWalletView/AutoReconnectingView/AutoReconnectingView.cjs} +57 -50
- package/src/lib/views/SyncWalletView/AutoReconnectingView/AutoReconnectingView.d.ts +9 -0
- package/src/lib/{utils/functions/getEOAWallet/getEOAWallet.js → views/SyncWalletView/AutoReconnectingView/AutoReconnectingView.js} +57 -50
- package/src/lib/views/SyncWalletView/AutoReconnectingView/index.d.ts +1 -0
- package/src/lib/views/SyncWalletView/ReconnectWithQrCodeView/ReconnectWithQrCodeView.cjs +126 -0
- package/src/lib/views/SyncWalletView/ReconnectWithQrCodeView/ReconnectWithQrCodeView.d.ts +9 -0
- package/src/lib/views/SyncWalletView/ReconnectWithQrCodeView/ReconnectWithQrCodeView.js +122 -0
- package/src/lib/views/SyncWalletView/ReconnectWithQrCodeView/index.d.ts +1 -0
- package/src/lib/views/SyncWalletView/SwitchWalletView/SwitchWalletView.cjs +101 -0
- package/src/lib/views/SyncWalletView/SwitchWalletView/SwitchWalletView.d.ts +10 -0
- package/src/lib/views/SyncWalletView/SwitchWalletView/SwitchWalletView.js +97 -0
- package/src/lib/views/SyncWalletView/SwitchWalletView/index.d.ts +1 -0
- package/src/lib/views/SyncWalletView/SyncWalletView.cjs +74 -49
- package/src/lib/views/SyncWalletView/SyncWalletView.d.ts +2 -0
- package/src/lib/views/SyncWalletView/SyncWalletView.js +75 -50
- package/src/lib/views/TransactionConfirmationView/TransactionConfirmationView.cjs +1 -1
- package/src/lib/views/TransactionConfirmationView/TransactionConfirmationView.js +1 -1
- package/src/lib/views/WalletGroupView/WalletGroupView.cjs +2 -2
- package/src/lib/views/WalletGroupView/WalletGroupView.js +2 -2
- package/src/lib/views/WalletGroupView/components/WalletGroupItem/WalletGroupItem.cjs +1 -1
- package/src/lib/views/WalletGroupView/components/WalletGroupItem/WalletGroupItem.js +1 -1
- package/src/lib/views/WalletList/WalletListItem/WalletListItem.cjs +1 -1
- package/src/lib/views/WalletList/WalletListItem/WalletListItem.js +1 -1
- package/src/lib/views/WalletUsedView/WalletUsedView.cjs +1 -1
- package/src/lib/views/WalletUsedView/WalletUsedView.js +1 -1
- package/src/lib/widgets/DynamicWidget/components/ActiveWalletInformation/ActiveWalletInformation.cjs +6 -5
- package/src/lib/widgets/DynamicWidget/components/ActiveWalletInformation/ActiveWalletInformation.js +6 -5
- package/src/lib/widgets/DynamicWidget/components/DotsMenuDropdown/DotsMenuDropdown.cjs +1 -1
- package/src/lib/widgets/DynamicWidget/components/DotsMenuDropdown/DotsMenuDropdown.js +1 -1
- package/src/lib/widgets/DynamicWidget/components/WalletIconWithNetwork/WalletIconWithNetwork.cjs +1 -1
- package/src/lib/widgets/DynamicWidget/components/WalletIconWithNetwork/WalletIconWithNetwork.js +1 -1
- package/src/lib/widgets/DynamicWidget/components/WidgetPortal/WidgetPortal.cjs +1 -1
- package/src/lib/widgets/DynamicWidget/components/WidgetPortal/WidgetPortal.d.ts +3 -1
- package/src/lib/widgets/DynamicWidget/components/WidgetPortal/WidgetPortal.js +1 -1
- package/src/lib/widgets/DynamicWidget/prompts/DefaultPromptModal/DefaultPromptModal.cjs +2 -2
- package/src/lib/widgets/DynamicWidget/prompts/DefaultPromptModal/DefaultPromptModal.d.ts +1 -0
- package/src/lib/widgets/DynamicWidget/prompts/DefaultPromptModal/DefaultPromptModal.js +2 -2
- package/src/lib/widgets/DynamicWidget/prompts/DetectedNewWalletModal/DetectedNewWalletModal.cjs +7 -9
- package/src/lib/widgets/DynamicWidget/prompts/DetectedNewWalletModal/DetectedNewWalletModal.js +7 -9
- package/src/lib/widgets/DynamicWidget/views/SettingsView/SettingsView.cjs +46 -45
- package/src/lib/widgets/DynamicWidget/views/SettingsView/SettingsView.js +47 -46
- package/src/lib/utils/functions/createOwnerWallet/createOwnerWallet.cjs +0 -40
- package/src/lib/utils/functions/createOwnerWallet/createOwnerWallet.d.ts +0 -3
- package/src/lib/utils/functions/createOwnerWallet/createOwnerWallet.js +0 -36
- package/src/lib/utils/functions/createOwnerWallet/index.d.ts +0 -1
- package/src/lib/utils/functions/getEOAWallet/getEOAWallet.d.ts +0 -3
- package/src/lib/utils/functions/getEOAWallet/index.d.ts +0 -1
- package/src/lib/utils/functions/getWalletIdentifier/getWalletIdentifier.cjs +0 -8
- package/src/lib/utils/functions/getWalletIdentifier/getWalletIdentifier.js +0 -4
- package/src/lib/utils/functions/isWalletConnected/isWalletConnected.cjs +0 -14
- package/src/lib/utils/functions/isWalletConnected/isWalletConnected.js +0 -10
- package/src/lib/utils/hooks/events/useWindowEvent/useWindowEvent.cjs +0 -25
- package/src/lib/utils/hooks/events/useWindowEvent/useWindowEvent.js +0 -21
- package/src/lib/utils/hooks/multiWallet/useSyncPrimaryWallet/index.d.ts +0 -1
- package/src/lib/utils/hooks/multiWallet/useSyncPrimaryWallet/useSyncPrimaryWallet.cjs +0 -209
- package/src/lib/utils/hooks/multiWallet/useSyncPrimaryWallet/useSyncPrimaryWallet.d.ts +0 -1
- package/src/lib/utils/hooks/multiWallet/useSyncPrimaryWallet/useSyncPrimaryWallet.js +0 -205
- package/src/lib/utils/hooks/useWalletConnectors/utils/findWallet/findWallet.d.ts +0 -3
- package/src/lib/utils/hooks/useWalletConnectors/utils/findWallet/index.d.ts +0 -1
- package/src/lib/utils/hooks/useWalletsConnectionState/index.d.ts +0 -1
- package/src/lib/utils/hooks/useWalletsConnectionState/useWalletsConnectionState.cjs +0 -184
- package/src/lib/utils/hooks/useWalletsConnectionState/useWalletsConnectionState.d.ts +0 -12
- package/src/lib/utils/hooks/useWalletsConnectionState/useWalletsConnectionState.js +0 -180
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use client'
|
|
2
2
|
import { __awaiter } from '../../../../../../_virtual/_tslib.js';
|
|
3
|
-
import { useCallback } from 'react';
|
|
3
|
+
import { useCallback, useMemo } from 'react';
|
|
4
4
|
import { JwtVerifiedCredentialFormatEnum } from '@dynamic-labs/sdk-api-core';
|
|
5
5
|
import { DynamicError, EmbeddedWalletException } from '@dynamic-labs/utils';
|
|
6
6
|
import { isSessionKeyCompatibleWalletConnector } from '@dynamic-labs/wallet-connector-core';
|
|
@@ -30,7 +30,6 @@ import '../../../../locale/locale.js';
|
|
|
30
30
|
import { refreshUserJwt } from '../../../../data/api/user/user.js';
|
|
31
31
|
import { getUserWalletsFromVerifiedCredentials } from '../../../functions/getUserWalletsFromVerifiedCredentials/getUserWalletsFromVerifiedCredentials.js';
|
|
32
32
|
import { addPasskeyIdentifierToWalletConnector } from '../../../functions/addPasskeyIdentifierToWalletConnector/addPasskeyIdentifierToWalletConnector.js';
|
|
33
|
-
import { getEOAWallet } from '../../../functions/getEOAWallet/getEOAWallet.js';
|
|
34
33
|
import { getUserVerifiedCredentialType } from '../../../functions/getUserVerifiedCredentialType/getUserVerifiedCredentialType.js';
|
|
35
34
|
import { hasEmbeddedWallet } from '../../../functions/hasEmbeddedWallet/hasEmbeddedWallet.js';
|
|
36
35
|
import { getEmbeddedWalletAuthHandler } from '../../../functions/getEmbeddedWalletAuthHandler/getEmbeddedWalletAuthHandler.js';
|
|
@@ -44,12 +43,13 @@ import 'react-dom';
|
|
|
44
43
|
import { useElementById } from '../../useElementById/useElementById.js';
|
|
45
44
|
import { useWalletContext } from '../../../../context/WalletContext/WalletContext.js';
|
|
46
45
|
import { useIsTurnkeyWallet } from '../../useIsTurnkeyWallet/useIsTurnkeyWallet.js';
|
|
47
|
-
import { validateTurnkeyProviderEnabled } from '../../../validations/validateTurnkeyProviderEnabled/validateTurnkeyProviderEnabled.js';
|
|
48
|
-
import { canRestoreEmbeddedWalletSession, restoreEmbeddedWalletSession } from '../../../../views/Passkey/utils/passkeyRecovery/passkeyRecovery.js';
|
|
49
46
|
import { cleanupExport, initExport, exportCredential } from '../../../../views/EmbeddedReveal/utils/turnkeyExport/turnkeyExport.js';
|
|
47
|
+
import { canRestoreEmbeddedWalletSession, restoreEmbeddedWalletSession } from '../../../../views/Passkey/utils/passkeyRecovery/passkeyRecovery.js';
|
|
48
|
+
import { validateTurnkeyProviderEnabled } from '../../../validations/validateTurnkeyProviderEnabled/validateTurnkeyProviderEnabled.js';
|
|
50
49
|
import { usePasskeyRecovery } from '../../usePasskeyRecovery/usePasskeyRecovery.js';
|
|
51
|
-
import {
|
|
50
|
+
import { useSmartWallets } from '../../useSmartWallets/useSmartWallets.js';
|
|
52
51
|
import { EmbeddedWalletVersion, iframeContainerId, iframeElementId, revealIframeElementId, revealIframeContainerId } from './constants.js';
|
|
52
|
+
import { useTurnkey } from './useTurnkey/useTurnkey.js';
|
|
53
53
|
import '../../../../context/ThemeContext/ThemeContext.js';
|
|
54
54
|
import '../../useUserUpdateRequest/useUpdateUser/userFieldsSchema.js';
|
|
55
55
|
import '@dynamic-labs/types';
|
|
@@ -105,6 +105,12 @@ import '../../../../context/ConnectWithOtpContext/constants.js';
|
|
|
105
105
|
import '../../../../context/ReinitializeContext/ReinitializeContextProvider.js';
|
|
106
106
|
import { useInternalDynamicContext } from '../../../../context/DynamicContext/useDynamicContext/useInternalDynamicContext.js';
|
|
107
107
|
|
|
108
|
+
const isConnectorSessionKeyActive = (connector) => {
|
|
109
|
+
var _a;
|
|
110
|
+
if (!connector || !isSessionKeyCompatibleWalletConnector(connector))
|
|
111
|
+
return false;
|
|
112
|
+
return Boolean((_a = connector.sessionKeys) === null || _a === void 0 ? void 0 : _a.publicKey);
|
|
113
|
+
};
|
|
108
114
|
// Hook exposed to customers
|
|
109
115
|
/**
|
|
110
116
|
*
|
|
@@ -121,21 +127,21 @@ import { useInternalDynamicContext } from '../../../../context/DynamicContext/us
|
|
|
121
127
|
* }
|
|
122
128
|
*/
|
|
123
129
|
const useSecureEnclaveEmbeddedWallet = () => {
|
|
124
|
-
var _a, _b, _c, _d
|
|
130
|
+
var _a, _b, _c, _d;
|
|
125
131
|
const { projectSettings, primaryWallet, user, environmentId, walletConnectorOptions, } = useInternalDynamicContext();
|
|
126
132
|
const { createTurnkeyWallet } = useTurnkey();
|
|
127
133
|
const { hasRecoveryEmail } = useIsTurnkeyWallet();
|
|
128
134
|
const { createRootElement } = useElementById();
|
|
129
135
|
const { isLoadingEmbeddedWallet, setIsLoadingEmbeddedWallet } = useWalletContext();
|
|
130
|
-
const
|
|
131
|
-
const
|
|
136
|
+
const { getEOAWallet } = useSmartWallets();
|
|
137
|
+
const wallet = (_a = (primaryWallet && getEOAWallet(primaryWallet))) !== null && _a !== void 0 ? _a : primaryWallet;
|
|
132
138
|
const userHasEmbeddedWallet = useCallback(() => hasEmbeddedWallet(user, 'turnkey'), [user]);
|
|
133
|
-
const getWalletVersion = () => {
|
|
139
|
+
const getWalletVersion = useCallback(() => {
|
|
134
140
|
if (isSessionKeyCompatibleWalletConnector(wallet === null || wallet === void 0 ? void 0 : wallet.connector)) {
|
|
135
141
|
return EmbeddedWalletVersion.V2;
|
|
136
142
|
}
|
|
137
143
|
return EmbeddedWalletVersion.V1;
|
|
138
|
-
};
|
|
144
|
+
}, [wallet === null || wallet === void 0 ? void 0 : wallet.connector]);
|
|
139
145
|
const { shouldInitRecovery, initPasskeyRecoveryProcess } = usePasskeyRecovery();
|
|
140
146
|
/**
|
|
141
147
|
* Creates a new secure enclave embedded wallet according to the settings from the dashboard
|
|
@@ -144,13 +150,13 @@ const useSecureEnclaveEmbeddedWallet = () => {
|
|
|
144
150
|
* @returns Promise<Wallet | undefined>
|
|
145
151
|
*/
|
|
146
152
|
const createEmbeddedWallet = useCallback((chains, options) => __awaiter(void 0, void 0, void 0, function* () {
|
|
147
|
-
var
|
|
153
|
+
var _e;
|
|
148
154
|
if (!user) {
|
|
149
155
|
throw new DynamicError(USER_NOT_LOGGED_IN);
|
|
150
156
|
}
|
|
151
157
|
const userWalletsCredentials = getUserWalletsFromVerifiedCredentials(user);
|
|
152
158
|
const embeddedWalletVerifiedCredential = findEmbeddedWalletFromVerifiedCredentials(user, chains);
|
|
153
|
-
const isManualMode = ((
|
|
159
|
+
const isManualMode = ((_e = projectSettings === null || projectSettings === void 0 ? void 0 : projectSettings.sdk.embeddedWallets) === null || _e === void 0 ? void 0 : _e.automaticEmbeddedWalletCreation) === false;
|
|
154
160
|
// if user has a wallet and it's not embedded,
|
|
155
161
|
// throw error to follow another flow and set up the right wallet
|
|
156
162
|
// However, if the user is in manual mode continue.
|
|
@@ -169,14 +175,14 @@ const useSecureEnclaveEmbeddedWallet = () => {
|
|
|
169
175
|
* @param chain - chain parameter to create the wallet for
|
|
170
176
|
* @returns Promise<UserProfile | undefined>
|
|
171
177
|
*/
|
|
172
|
-
const createEmbeddedWalletAccount$1 = useCallback((
|
|
173
|
-
var
|
|
178
|
+
const createEmbeddedWalletAccount$1 = useCallback((_f) => __awaiter(void 0, [_f], void 0, function* ({ chain }) {
|
|
179
|
+
var _g, _h, _j;
|
|
174
180
|
if (!user) {
|
|
175
181
|
throw new Error(USER_NOT_LOGGED_IN);
|
|
176
182
|
}
|
|
177
183
|
validateTurnkeyProviderEnabled(projectSettings);
|
|
178
184
|
const embeddedWalletVerifiedCredential = findEmbeddedWalletFromVerifiedCredentials(user);
|
|
179
|
-
const turnkeyWalletId = (
|
|
185
|
+
const turnkeyWalletId = (_g = embeddedWalletVerifiedCredential === null || embeddedWalletVerifiedCredential === void 0 ? void 0 : embeddedWalletVerifiedCredential.walletProperties) === null || _g === void 0 ? void 0 : _g.turnkeyHDWalletId;
|
|
180
186
|
if (!turnkeyWalletId) {
|
|
181
187
|
throw new DynamicError('No HD wallet was found for this user to derive a wallet account. Use createEmbeddedWallet first', 'NoHdWalletFound');
|
|
182
188
|
}
|
|
@@ -185,14 +191,14 @@ const useSecureEnclaveEmbeddedWallet = () => {
|
|
|
185
191
|
environmentId,
|
|
186
192
|
});
|
|
187
193
|
if (isSessionKeyCompatibleWalletConnector(wallet === null || wallet === void 0 ? void 0 : wallet.connector)) {
|
|
188
|
-
yield ((
|
|
194
|
+
yield ((_h = wallet === null || wallet === void 0 ? void 0 : wallet.connector) === null || _h === void 0 ? void 0 : _h.createOrRestoreSession({
|
|
189
195
|
ignoreRestore: true,
|
|
190
196
|
}));
|
|
191
197
|
}
|
|
192
198
|
else if (yield shouldInitRecovery()) {
|
|
193
199
|
yield initPasskeyRecoveryProcess('email');
|
|
194
200
|
}
|
|
195
|
-
const signedRequest = yield ((
|
|
201
|
+
const signedRequest = yield ((_j = wallet === null || wallet === void 0 ? void 0 : wallet.connector) === null || _j === void 0 ? void 0 : _j.stampCreateWalletAccountRequest({
|
|
196
202
|
request: requestToStamp,
|
|
197
203
|
}));
|
|
198
204
|
yield createEmbeddedWalletAccount({
|
|
@@ -202,11 +208,11 @@ const useSecureEnclaveEmbeddedWallet = () => {
|
|
|
202
208
|
return refreshUserJwt({ environmentId });
|
|
203
209
|
}), [
|
|
204
210
|
environmentId,
|
|
211
|
+
wallet === null || wallet === void 0 ? void 0 : wallet.connector,
|
|
205
212
|
initPasskeyRecoveryProcess,
|
|
206
213
|
projectSettings,
|
|
207
214
|
shouldInitRecovery,
|
|
208
215
|
user,
|
|
209
|
-
wallet === null || wallet === void 0 ? void 0 : wallet.connector,
|
|
210
216
|
]);
|
|
211
217
|
/**
|
|
212
218
|
* Creates or restores a secure enclave embedded wallet session
|
|
@@ -215,18 +221,18 @@ const useSecureEnclaveEmbeddedWallet = () => {
|
|
|
215
221
|
* @returns Promise<'session_created' | 'session_restored'> - returns a string indicating the status of the session
|
|
216
222
|
*/
|
|
217
223
|
const createOrRestoreSession = useCallback((options) => __awaiter(void 0, void 0, void 0, function* () {
|
|
218
|
-
var
|
|
224
|
+
var _k, _l, _m, _o, _p, _q;
|
|
219
225
|
if (!user) {
|
|
220
226
|
throw new DynamicError(USER_NOT_LOGGED_IN);
|
|
221
227
|
}
|
|
222
|
-
const
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
return yield ((_s = primaryWallet === null || primaryWallet === void 0 ? void 0 : primaryWallet.connector) === null || _s === void 0 ? void 0 : _s.createOrRestoreSession());
|
|
228
|
+
const primaryConnector = primaryWallet === null || primaryWallet === void 0 ? void 0 : primaryWallet.connector;
|
|
229
|
+
if (primaryConnector &&
|
|
230
|
+
isSessionKeyCompatibleWalletConnector(primaryConnector)) {
|
|
231
|
+
return primaryConnector.createOrRestoreSession();
|
|
227
232
|
}
|
|
228
|
-
|
|
229
|
-
|
|
233
|
+
const eoaConnector = wallet === null || wallet === void 0 ? void 0 : wallet.connector;
|
|
234
|
+
if (eoaConnector && isSessionKeyCompatibleWalletConnector(eoaConnector)) {
|
|
235
|
+
return eoaConnector.createOrRestoreSession();
|
|
230
236
|
}
|
|
231
237
|
const turnkeyRecoveryHandler = getEmbeddedWalletAuthHandler(wallet === null || wallet === void 0 ? void 0 : wallet.connector);
|
|
232
238
|
if (turnkeyRecoveryHandler.isSessionActive()) {
|
|
@@ -234,12 +240,12 @@ const useSecureEnclaveEmbeddedWallet = () => {
|
|
|
234
240
|
}
|
|
235
241
|
const turnkeyAuthIframeContainerRef = createRootElement(iframeContainerId);
|
|
236
242
|
// try to restore session if possible
|
|
237
|
-
if (canRestoreEmbeddedWalletSession((
|
|
243
|
+
if (canRestoreEmbeddedWalletSession((_k = projectSettings === null || projectSettings === void 0 ? void 0 : projectSettings.sdk.embeddedWallets) === null || _k === void 0 ? void 0 : _k.sessionKeyDuration)) {
|
|
238
244
|
try {
|
|
239
245
|
const sessionRestored = yield restoreEmbeddedWalletSession({
|
|
240
246
|
iframeContainer: turnkeyAuthIframeContainerRef.current,
|
|
241
247
|
iframeElementId,
|
|
242
|
-
sessionExpiration: getEmbeddedWalletSessionExpiration((
|
|
248
|
+
sessionExpiration: getEmbeddedWalletSessionExpiration((_m = (_l = projectSettings === null || projectSettings === void 0 ? void 0 : projectSettings.sdk) === null || _l === void 0 ? void 0 : _l.embeddedWallets) === null || _m === void 0 ? void 0 : _m.sessionKeyDuration),
|
|
243
249
|
user,
|
|
244
250
|
wallet: primaryWallet,
|
|
245
251
|
});
|
|
@@ -258,7 +264,7 @@ const useSecureEnclaveEmbeddedWallet = () => {
|
|
|
258
264
|
if (!userHasEmbeddedWallet() || !hasRecoveryEmail) {
|
|
259
265
|
throw new DynamicError('User does not have a secure enclave wallet or a verified email', INVALID_WALLET_DATA);
|
|
260
266
|
}
|
|
261
|
-
const organizationId = (
|
|
267
|
+
const organizationId = (_q = (_p = (_o = user === null || user === void 0 ? void 0 : user.verifiedCredentials) === null || _o === void 0 ? void 0 : _o.find(({ walletName }) => walletName === null || walletName === void 0 ? void 0 : walletName.startsWith('turnkey'))) === null || _p === void 0 ? void 0 : _p.walletProperties) === null || _q === void 0 ? void 0 : _q.turnkeySubOrganizationId;
|
|
262
268
|
yield turnkeyRecoveryHandler.verifyRecoveryCode(options.oneTimeCode, organizationId);
|
|
263
269
|
const sessionSettings = {
|
|
264
270
|
createdAt: new Date().getTime(),
|
|
@@ -272,7 +278,7 @@ const useSecureEnclaveEmbeddedWallet = () => {
|
|
|
272
278
|
user,
|
|
273
279
|
hasRecoveryEmail,
|
|
274
280
|
primaryWallet,
|
|
275
|
-
(
|
|
281
|
+
(_c = (_b = projectSettings === null || projectSettings === void 0 ? void 0 : projectSettings.sdk) === null || _b === void 0 ? void 0 : _b.embeddedWallets) === null || _c === void 0 ? void 0 : _c.sessionKeyDuration,
|
|
276
282
|
userHasEmbeddedWallet,
|
|
277
283
|
wallet === null || wallet === void 0 ? void 0 : wallet.connector,
|
|
278
284
|
]);
|
|
@@ -282,12 +288,12 @@ const useSecureEnclaveEmbeddedWallet = () => {
|
|
|
282
288
|
* @returns Promise<WebAuthnAttestation>
|
|
283
289
|
*/
|
|
284
290
|
const createPasskey = useCallback((options) => __awaiter(void 0, void 0, void 0, function* () {
|
|
285
|
-
var
|
|
291
|
+
var _r, _s;
|
|
286
292
|
if (!user) {
|
|
287
293
|
throw new DynamicError(USER_NOT_LOGGED_IN);
|
|
288
294
|
}
|
|
289
295
|
validateTurnkeyProviderEnabled(projectSettings);
|
|
290
|
-
const turnkeyWallet = findTurnkeyWalletByPrimaryChain(walletConnectorOptions, (
|
|
296
|
+
const turnkeyWallet = findTurnkeyWalletByPrimaryChain(walletConnectorOptions, (_r = projectSettings === null || projectSettings === void 0 ? void 0 : projectSettings.sdk.embeddedWallets) === null || _r === void 0 ? void 0 : _r.chainConfigurations, user.verifiedCredentials);
|
|
291
297
|
if (!(turnkeyWallet === null || turnkeyWallet === void 0 ? void 0 : turnkeyWallet.walletConnector)) {
|
|
292
298
|
throw new DynamicError('Wallet connector not found', INVALID_WALLET_DATA);
|
|
293
299
|
}
|
|
@@ -302,7 +308,7 @@ const useSecureEnclaveEmbeddedWallet = () => {
|
|
|
302
308
|
if (!('id' in turnkeyWallet) || !hasEmailVC) {
|
|
303
309
|
return walletConnector.getWebAuthnAttestation();
|
|
304
310
|
}
|
|
305
|
-
const turnkeySubOrganizationId = (
|
|
311
|
+
const turnkeySubOrganizationId = (_s = turnkeyWallet === null || turnkeyWallet === void 0 ? void 0 : turnkeyWallet.walletProperties) === null || _s === void 0 ? void 0 : _s.turnkeySubOrganizationId;
|
|
306
312
|
if (!turnkeySubOrganizationId) {
|
|
307
313
|
throw new DynamicError('No sub organization id found for the wallet', INVALID_WALLET_DATA);
|
|
308
314
|
}
|
|
@@ -345,18 +351,17 @@ const useSecureEnclaveEmbeddedWallet = () => {
|
|
|
345
351
|
});
|
|
346
352
|
return data.passkeys;
|
|
347
353
|
}), [user, environmentId]);
|
|
348
|
-
const isEmailAuthSessionActive = (
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
354
|
+
const isEmailAuthSessionActive = useMemo(() => {
|
|
355
|
+
var _a;
|
|
356
|
+
const eoaConnector = wallet === null || wallet === void 0 ? void 0 : wallet.connector;
|
|
357
|
+
if (!eoaConnector || !('getAuthenticatorHandler' in eoaConnector))
|
|
358
|
+
return false;
|
|
359
|
+
return (_a = getEmbeddedWalletAuthHandler(eoaConnector)) === null || _a === void 0 ? void 0 : _a.isSessionActive();
|
|
360
|
+
}, [wallet === null || wallet === void 0 ? void 0 : wallet.connector]);
|
|
361
|
+
const isSessionKeySessionAAActive = useMemo(() => isConnectorSessionKeyActive(wallet === null || wallet === void 0 ? void 0 : wallet.connector), [wallet === null || wallet === void 0 ? void 0 : wallet.connector]);
|
|
362
|
+
const isSessionKeySessionActive = useMemo(() => isConnectorSessionKeyActive(primaryWallet === null || primaryWallet === void 0 ? void 0 : primaryWallet.connector), [primaryWallet === null || primaryWallet === void 0 ? void 0 : primaryWallet.connector]);
|
|
357
363
|
/**
|
|
358
364
|
* Checks if the embedded wallet session is active
|
|
359
|
-
* @returns boolean
|
|
360
365
|
*/
|
|
361
366
|
const isSessionActive = isEmailAuthSessionActive ||
|
|
362
367
|
isSessionKeySessionActive ||
|
|
@@ -367,16 +372,16 @@ const useSecureEnclaveEmbeddedWallet = () => {
|
|
|
367
372
|
* and the html container id to render the iframe into
|
|
368
373
|
* @returns Promise<string> - returns the embedded wallet recovery phrase or private key
|
|
369
374
|
*/
|
|
370
|
-
const revealEmbeddedWalletKey = (
|
|
371
|
-
var
|
|
375
|
+
const revealEmbeddedWalletKey = useCallback((_t) => __awaiter(void 0, [_t], void 0, function* ({ type, htmlContainerId, }) {
|
|
376
|
+
var _u, _v, _w, _x, _y, _z;
|
|
372
377
|
if (!user) {
|
|
373
378
|
throw new DynamicError(USER_NOT_LOGGED_IN);
|
|
374
379
|
}
|
|
375
380
|
yield cleanupExport({
|
|
376
|
-
wallet,
|
|
381
|
+
wallet: wallet,
|
|
377
382
|
});
|
|
378
|
-
const turnkeyWallet = findTurnkeyWalletByPrimaryChain(walletConnectorOptions, (
|
|
379
|
-
const turnkeyHDWalletId = (
|
|
383
|
+
const turnkeyWallet = findTurnkeyWalletByPrimaryChain(walletConnectorOptions, (_u = projectSettings === null || projectSettings === void 0 ? void 0 : projectSettings.sdk.embeddedWallets) === null || _u === void 0 ? void 0 : _u.chainConfigurations, user === null || user === void 0 ? void 0 : user.verifiedCredentials);
|
|
384
|
+
const turnkeyHDWalletId = (_v = turnkeyWallet === null || turnkeyWallet === void 0 ? void 0 : turnkeyWallet.walletProperties) === null || _v === void 0 ? void 0 : _v.turnkeyHDWalletId;
|
|
380
385
|
if (type === 'recoveryPhrase' && !turnkeyHDWalletId) {
|
|
381
386
|
type = 'privateKey';
|
|
382
387
|
}
|
|
@@ -385,26 +390,26 @@ const useSecureEnclaveEmbeddedWallet = () => {
|
|
|
385
390
|
// since it will show unrelated turnkey content
|
|
386
391
|
iframeContainerElement.current.style.display = 'none';
|
|
387
392
|
if (isSessionKeyCompatibleWalletConnector(wallet === null || wallet === void 0 ? void 0 : wallet.connector)) {
|
|
388
|
-
yield ((
|
|
393
|
+
yield ((_w = wallet === null || wallet === void 0 ? void 0 : wallet.connector) === null || _w === void 0 ? void 0 : _w.createOrRestoreSession());
|
|
389
394
|
}
|
|
390
395
|
yield initExport({
|
|
391
396
|
iframeContainer: iframeContainerElement.current,
|
|
392
397
|
iframeElementId: revealIframeElementId,
|
|
393
|
-
wallet,
|
|
398
|
+
wallet: wallet,
|
|
394
399
|
});
|
|
395
400
|
try {
|
|
396
401
|
yield exportCredential({
|
|
397
402
|
address: type === 'privateKey' ? wallet === null || wallet === void 0 ? void 0 : wallet.address : undefined,
|
|
398
403
|
environmentId,
|
|
399
404
|
user,
|
|
400
|
-
wallet,
|
|
405
|
+
wallet: wallet,
|
|
401
406
|
});
|
|
402
407
|
}
|
|
403
|
-
catch (
|
|
408
|
+
catch (_0) {
|
|
404
409
|
if (isSessionKeyCompatibleWalletConnector(wallet === null || wallet === void 0 ? void 0 : wallet.connector) &&
|
|
405
|
-
((
|
|
406
|
-
yield ((
|
|
407
|
-
yield ((
|
|
410
|
+
((_x = wallet === null || wallet === void 0 ? void 0 : wallet.connector) === null || _x === void 0 ? void 0 : _x.removeSessionKeys)) {
|
|
411
|
+
yield ((_y = wallet === null || wallet === void 0 ? void 0 : wallet.connector) === null || _y === void 0 ? void 0 : _y.removeSessionKeys());
|
|
412
|
+
yield ((_z = wallet === null || wallet === void 0 ? void 0 : wallet.connector) === null || _z === void 0 ? void 0 : _z.createOrRestoreSession({
|
|
408
413
|
ignoreRestore: true,
|
|
409
414
|
}));
|
|
410
415
|
}
|
|
@@ -412,24 +417,31 @@ const useSecureEnclaveEmbeddedWallet = () => {
|
|
|
412
417
|
address: type === 'privateKey' ? wallet === null || wallet === void 0 ? void 0 : wallet.address : undefined,
|
|
413
418
|
environmentId,
|
|
414
419
|
user,
|
|
415
|
-
wallet,
|
|
420
|
+
wallet: wallet,
|
|
416
421
|
});
|
|
417
422
|
}
|
|
418
423
|
// show the iframe container after the export is done
|
|
419
424
|
// to show the exported content only
|
|
420
425
|
iframeContainerElement.current.style.display = 'block';
|
|
421
426
|
return true;
|
|
422
|
-
})
|
|
427
|
+
}), [
|
|
428
|
+
createRootElement,
|
|
429
|
+
environmentId,
|
|
430
|
+
wallet,
|
|
431
|
+
(_d = projectSettings === null || projectSettings === void 0 ? void 0 : projectSettings.sdk.embeddedWallets) === null || _d === void 0 ? void 0 : _d.chainConfigurations,
|
|
432
|
+
user,
|
|
433
|
+
walletConnectorOptions,
|
|
434
|
+
]);
|
|
423
435
|
/**
|
|
424
436
|
* Sends a one-time code to the user so they can create a session or add a new passkey
|
|
425
437
|
* @returns Promise<'code_sent'>
|
|
426
438
|
*/
|
|
427
439
|
const sendOneTimeCode = useCallback(() => __awaiter(void 0, void 0, void 0, function* () {
|
|
428
|
-
var
|
|
440
|
+
var _1, _2;
|
|
429
441
|
if (!user) {
|
|
430
442
|
throw new DynamicError(USER_NOT_LOGGED_IN);
|
|
431
443
|
}
|
|
432
|
-
const targetTurnkeyWallet = findTurnkeyWalletByPrimaryChain(walletConnectorOptions, (
|
|
444
|
+
const targetTurnkeyWallet = findTurnkeyWalletByPrimaryChain(walletConnectorOptions, (_1 = projectSettings === null || projectSettings === void 0 ? void 0 : projectSettings.sdk.embeddedWallets) === null || _1 === void 0 ? void 0 : _1.chainConfigurations, user.verifiedCredentials);
|
|
433
445
|
if (!targetTurnkeyWallet || !('id' in targetTurnkeyWallet)) {
|
|
434
446
|
throw new DynamicError('User does not have a valid secure enclave wallet', INVALID_WALLET_DATA);
|
|
435
447
|
}
|
|
@@ -440,7 +452,7 @@ const useSecureEnclaveEmbeddedWallet = () => {
|
|
|
440
452
|
throw new DynamicError('Session is active. No need to create a new one', ACTIVE_SESSION);
|
|
441
453
|
}
|
|
442
454
|
const turnkeyAuthIframeContainerRef = createRootElement(iframeContainerId);
|
|
443
|
-
const publicKey = yield turnkeyAuthenticatorHandler.initRecovery('email', turnkeyAuthIframeContainerRef.current, iframeElementId, getEmbeddedWalletSessionExpiration((
|
|
455
|
+
const publicKey = yield turnkeyAuthenticatorHandler.initRecovery('email', turnkeyAuthIframeContainerRef.current, iframeElementId, getEmbeddedWalletSessionExpiration((_2 = projectSettings === null || projectSettings === void 0 ? void 0 : projectSettings.sdk.embeddedWallets) === null || _2 === void 0 ? void 0 : _2.sessionKeyDuration));
|
|
444
456
|
if (!publicKey) {
|
|
445
457
|
throw new DynamicError(ERROR_SENDING_CODE);
|
|
446
458
|
}
|
|
@@ -459,7 +471,7 @@ const useSecureEnclaveEmbeddedWallet = () => {
|
|
|
459
471
|
projectSettings,
|
|
460
472
|
walletConnectorOptions,
|
|
461
473
|
]);
|
|
462
|
-
return {
|
|
474
|
+
return useMemo(() => ({
|
|
463
475
|
createEmbeddedWallet,
|
|
464
476
|
createEmbeddedWalletAccount: createEmbeddedWalletAccount$1,
|
|
465
477
|
createOrRestoreSession,
|
|
@@ -471,7 +483,19 @@ const useSecureEnclaveEmbeddedWallet = () => {
|
|
|
471
483
|
revealEmbeddedWalletKey,
|
|
472
484
|
sendOneTimeCode,
|
|
473
485
|
userHasEmbeddedWallet,
|
|
474
|
-
}
|
|
486
|
+
}), [
|
|
487
|
+
createEmbeddedWallet,
|
|
488
|
+
createEmbeddedWalletAccount$1,
|
|
489
|
+
createOrRestoreSession,
|
|
490
|
+
createPasskey,
|
|
491
|
+
getPasskeys,
|
|
492
|
+
getWalletVersion,
|
|
493
|
+
isLoadingEmbeddedWallet,
|
|
494
|
+
isSessionActive,
|
|
495
|
+
revealEmbeddedWalletKey,
|
|
496
|
+
sendOneTimeCode,
|
|
497
|
+
userHasEmbeddedWallet,
|
|
498
|
+
]);
|
|
475
499
|
};
|
|
476
500
|
|
|
477
|
-
export { useSecureEnclaveEmbeddedWallet };
|
|
501
|
+
export { isConnectorSessionKeyActive, useSecureEnclaveEmbeddedWallet };
|
|
@@ -7,6 +7,7 @@ var _tslib = require('../../../../../../../_virtual/_tslib.cjs');
|
|
|
7
7
|
var React = require('react');
|
|
8
8
|
var sdkApiCore = require('@dynamic-labs/sdk-api-core');
|
|
9
9
|
var walletConnectorCore = require('@dynamic-labs/wallet-connector-core');
|
|
10
|
+
require('../../../../../context/DynamicContext/DynamicContext.cjs');
|
|
10
11
|
var logger = require('../../../../../shared/logger.cjs');
|
|
11
12
|
require('@dynamic-labs/iconic');
|
|
12
13
|
require('react/jsx-runtime');
|
|
@@ -18,7 +19,6 @@ require('../../../../../shared/utils/classes/storage/localStorage.cjs');
|
|
|
18
19
|
require('../../../../../shared/utils/classes/storage/sessionStorage.cjs');
|
|
19
20
|
require('@dynamic-labs/utils');
|
|
20
21
|
require('../../../../../shared/consts/index.cjs');
|
|
21
|
-
require('../../../../../context/DynamicContext/DynamicContext.cjs');
|
|
22
22
|
var dynamicEvents = require('../../../../../events/dynamicEvents.cjs');
|
|
23
23
|
require('../../../../../context/CaptchaContext/CaptchaContext.cjs');
|
|
24
24
|
require('../../../../../context/ErrorContext/ErrorContext.cjs');
|
|
@@ -39,10 +39,11 @@ require('../../../../../context/VerificationContext/VerificationContext.cjs');
|
|
|
39
39
|
require('react-dom');
|
|
40
40
|
var useCreateDynamicEmbeddedWalletMutation = require('../../../useCreateDynamicEmbeddedWalletMutation/useCreateDynamicEmbeddedWalletMutation.cjs');
|
|
41
41
|
require('../../../../../context/WalletContext/WalletContext.cjs');
|
|
42
|
+
var useSmartWallets = require('../../../useSmartWallets/useSmartWallets.cjs');
|
|
42
43
|
var findPrimaryEmbeddedChain = require('../../../../../views/Passkey/utils/findPrimaryEmbeddedChain/findPrimaryEmbeddedChain.cjs');
|
|
43
|
-
var smartWallet = require('../../../useWalletConnectors/utils/smartWallet/smartWallet.cjs');
|
|
44
|
-
var findPasskeyEmailWalletConnector = require('../../../../../views/Passkey/utils/findPasskeyEmailWalletConnector/findPasskeyEmailWalletConnector.cjs');
|
|
45
44
|
require('../constants.cjs');
|
|
45
|
+
var findPasskeyEmailWalletConnector = require('../../../../../views/Passkey/utils/findPasskeyEmailWalletConnector/findPasskeyEmailWalletConnector.cjs');
|
|
46
|
+
var smartWallet = require('../../../useWalletConnectors/utils/smartWallet/smartWallet.cjs');
|
|
46
47
|
require('../../../../../context/ThemeContext/ThemeContext.cjs');
|
|
47
48
|
require('../../../useUserUpdateRequest/useUpdateUser/userFieldsSchema.cjs');
|
|
48
49
|
require('@dynamic-labs/types');
|
|
@@ -102,8 +103,8 @@ var useInternalDynamicContext = require('../../../../../context/DynamicContext/u
|
|
|
102
103
|
const useTurnkey = () => {
|
|
103
104
|
const { projectSettings, setPrimaryWalletId, walletConnectorOptions, setShowAuthFlow, environmentId, user, primaryWallet, } = useInternalDynamicContext.useInternalDynamicContext();
|
|
104
105
|
const { setView } = ViewContext.useViewContext();
|
|
105
|
-
const walletConnector = primaryWallet === null || primaryWallet === void 0 ? void 0 : primaryWallet.connector;
|
|
106
106
|
const { createDynamicEmbeddedWalletMutation } = useCreateDynamicEmbeddedWalletMutation.useCreateDynamicEmbeddedWalletMutation();
|
|
107
|
+
const { getEOAWallet } = useSmartWallets.useSmartWallets();
|
|
107
108
|
const startHeadlessEmbeddedWalletCreationFlow = React.useCallback((chains, options) => _tslib.__awaiter(void 0, void 0, void 0, function* () {
|
|
108
109
|
yield createDynamicEmbeddedWalletMutation({
|
|
109
110
|
chains,
|
|
@@ -145,7 +146,7 @@ const useTurnkey = () => {
|
|
|
145
146
|
});
|
|
146
147
|
}), [setShowAuthFlow, setView]);
|
|
147
148
|
const returnEmbeddedWallet = React.useCallback((embeddedWalletVerifiedCredential) => _tslib.__awaiter(void 0, void 0, void 0, function* () {
|
|
148
|
-
var _a, _b
|
|
149
|
+
var _a, _b;
|
|
149
150
|
const { chain } = embeddedWalletVerifiedCredential;
|
|
150
151
|
const turnkeyWallet = findTurnkeyWallet.findTurnkeyWalletByChain(walletConnectorOptions, chain);
|
|
151
152
|
let newPrimaryWalletId = null;
|
|
@@ -169,28 +170,29 @@ const useTurnkey = () => {
|
|
|
169
170
|
setPrimaryWalletId(newPrimaryWalletId);
|
|
170
171
|
/** It's not authenticated if it still hasn't created a passkey */
|
|
171
172
|
const isAuthenticated = Boolean((_b = embeddedWalletVerifiedCredential.walletProperties) === null || _b === void 0 ? void 0 : _b.isAuthenticatorAttached);
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
173
|
+
if (!(turnkeyWallet === null || turnkeyWallet === void 0 ? void 0 : turnkeyWallet.walletConnector)) {
|
|
174
|
+
throw new Error('Could not find the embedded wallet connector');
|
|
175
|
+
}
|
|
176
|
+
const connector = turnkeyWallet.walletConnector;
|
|
177
|
+
const passkeyWallet = connector.createWallet({
|
|
178
|
+
address: (yield connector.getAddress()) || '',
|
|
179
|
+
chain: connector.connectedChain,
|
|
180
|
+
connector,
|
|
176
181
|
id: embeddedWalletVerifiedCredential.id,
|
|
177
182
|
isAuthenticated,
|
|
178
|
-
|
|
179
|
-
key: embeddedWalletVerifiedCredential.walletName ||
|
|
180
|
-
(turnkeyWallet === null || turnkeyWallet === void 0 ? void 0 : turnkeyWallet.walletConnector.key) ||
|
|
181
|
-
'',
|
|
183
|
+
key: embeddedWalletVerifiedCredential.walletName || connector.key || '',
|
|
182
184
|
});
|
|
183
185
|
return Promise.resolve(passkeyWallet);
|
|
184
186
|
}), [setPrimaryWalletId, walletConnectorOptions, user]);
|
|
185
187
|
const createTurnkeyWallet = React.useCallback((chains, options) => _tslib.__awaiter(void 0, void 0, void 0, function* () {
|
|
186
|
-
var
|
|
188
|
+
var _c, _d, _e, _f, _g;
|
|
187
189
|
if (!user) {
|
|
188
190
|
throw new Error(errors.USER_NOT_LOGGED_IN);
|
|
189
191
|
}
|
|
190
|
-
const isManualMode = ((
|
|
191
|
-
const
|
|
192
|
-
|
|
193
|
-
|
|
192
|
+
const isManualMode = ((_c = projectSettings === null || projectSettings === void 0 ? void 0 : projectSettings.sdk.embeddedWallets) === null || _c === void 0 ? void 0 : _c.automaticEmbeddedWalletCreation) === false;
|
|
193
|
+
const eoaWallet = primaryWallet && getEOAWallet(primaryWallet);
|
|
194
|
+
const isSessionKeyCompatible = (primaryWallet && walletConnectorCore.isSessionKeyCompatibleWallet(primaryWallet)) ||
|
|
195
|
+
(eoaWallet && walletConnectorCore.isSessionKeyCompatibleWallet(eoaWallet));
|
|
194
196
|
const embeddedWalletVerifiedCredential = findEmbeddedWalletFromVerifiedCredentials.findEmbeddedWalletFromVerifiedCredentials(user, chains);
|
|
195
197
|
const userWalletsCredentials = getUserWalletsFromVerifiedCredentials.getUserWalletsFromVerifiedCredentials(user);
|
|
196
198
|
// If the user doesn't have a wallet, or if the customer is in Manual
|
|
@@ -200,10 +202,10 @@ const useTurnkey = () => {
|
|
|
200
202
|
if (!(userWalletsCredentials === null || userWalletsCredentials === void 0 ? void 0 : userWalletsCredentials.length) ||
|
|
201
203
|
(!embeddedWalletVerifiedCredential && isManualMode)) {
|
|
202
204
|
const hasEmailVC = getUserVerifiedCredentialType.getUserVerifiedCredentialType(user, sdkApiCore.JwtVerifiedCredentialFormatEnum.Email);
|
|
203
|
-
if ((!((
|
|
205
|
+
if ((!((_d = projectSettings === null || projectSettings === void 0 ? void 0 : projectSettings.sdk.embeddedWallets) === null || _d === void 0 ? void 0 : _d.forceAuthenticatorAtSignup) &&
|
|
204
206
|
hasEmailVC) ||
|
|
205
207
|
(options === null || options === void 0 ? void 0 : options.webAuthnAttestation) ||
|
|
206
|
-
|
|
208
|
+
isSessionKeyCompatible) {
|
|
207
209
|
// create embedded wallet fully headless
|
|
208
210
|
return startHeadlessEmbeddedWalletCreationFlow(chains, options);
|
|
209
211
|
}
|
|
@@ -217,19 +219,18 @@ const useTurnkey = () => {
|
|
|
217
219
|
// backend if this called as part of a new user sign up.
|
|
218
220
|
if (embeddedWalletVerifiedCredential &&
|
|
219
221
|
user.newUser &&
|
|
220
|
-
((
|
|
222
|
+
((_e = projectSettings === null || projectSettings === void 0 ? void 0 : projectSettings.sdk.embeddedWallets) === null || _e === void 0 ? void 0 : _e.automaticEmbeddedWalletCreation)) {
|
|
221
223
|
const walletConnector = findPasskeyEmailWalletConnector.findPasskeyEmailWalletConnector(walletConnectorOptions, findPrimaryEmbeddedChain.findPrimaryEmbeddedChain(projectSettings));
|
|
222
224
|
if (!walletConnector) {
|
|
223
|
-
throw new Error('Could not find the
|
|
225
|
+
throw new Error('Could not find the embedded wallet connector');
|
|
224
226
|
}
|
|
225
|
-
const wallet =
|
|
227
|
+
const wallet = walletConnector.createWallet({
|
|
226
228
|
address: (yield walletConnector.getAddress()) || '',
|
|
227
|
-
chain: walletConnector.connectedChain
|
|
229
|
+
chain: walletConnector.connectedChain,
|
|
228
230
|
connector: walletConnector,
|
|
229
231
|
id: embeddedWalletVerifiedCredential.id,
|
|
230
|
-
isAuthenticated: Boolean((
|
|
231
|
-
|
|
232
|
-
key: (_j = embeddedWalletVerifiedCredential.walletName) !== null && _j !== void 0 ? _j : walletConnector.key,
|
|
232
|
+
isAuthenticated: Boolean((_f = embeddedWalletVerifiedCredential === null || embeddedWalletVerifiedCredential === void 0 ? void 0 : embeddedWalletVerifiedCredential.walletProperties) === null || _f === void 0 ? void 0 : _f.isAuthenticatorAttached),
|
|
233
|
+
key: (_g = embeddedWalletVerifiedCredential.walletName) !== null && _g !== void 0 ? _g : walletConnector.key,
|
|
233
234
|
});
|
|
234
235
|
setPrimaryWalletId(embeddedWalletVerifiedCredential.id);
|
|
235
236
|
dynamicEvents.dynamicEvents.emit('embeddedWalletCreated', wallet, embeddedWalletVerifiedCredential, user);
|
|
@@ -245,13 +246,14 @@ const useTurnkey = () => {
|
|
|
245
246
|
}), [
|
|
246
247
|
user,
|
|
247
248
|
projectSettings,
|
|
248
|
-
|
|
249
|
-
|
|
249
|
+
primaryWallet,
|
|
250
|
+
getEOAWallet,
|
|
250
251
|
setShowAuthFlow,
|
|
252
|
+
returnEmbeddedWallet,
|
|
251
253
|
startHeadlessEmbeddedWalletCreationFlow,
|
|
252
254
|
startPasskeyEmbeddedWalletCreationFlow,
|
|
253
255
|
walletConnectorOptions,
|
|
254
|
-
|
|
256
|
+
setPrimaryWalletId,
|
|
255
257
|
]);
|
|
256
258
|
return {
|
|
257
259
|
createTurnkeyWallet,
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { EmbeddedWalletChainEnum } from '@dynamic-labs/sdk-api-core';
|
|
2
|
-
import {
|
|
2
|
+
import { Wallet, WebAuthnAttestation } from '@dynamic-labs/wallet-connector-core';
|
|
3
3
|
export declare const useTurnkey: () => {
|
|
4
4
|
readonly createTurnkeyWallet: (chains?: EmbeddedWalletChainEnum[], options?: {
|
|
5
5
|
webAuthnAttestation: WebAuthnAttestation;
|