@dynamic-labs/sdk-react-core 2.1.0-alpha.1 → 2.1.0-alpha.11
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 +92 -0
- package/package.cjs +2 -2
- package/package.js +2 -2
- package/package.json +13 -14
- package/src/index.cjs +8 -2
- package/src/index.d.ts +2 -1
- package/src/index.js +4 -1
- package/src/lib/Main.cjs +7 -0
- package/src/lib/Main.js +7 -0
- package/src/lib/components/Alert/Alert.cjs +2 -2
- package/src/lib/components/Alert/Alert.js +2 -2
- package/src/lib/components/Alert/Alert.types.d.ts +1 -0
- package/src/lib/components/EmailForm/EmailForm.cjs +1 -1
- package/src/lib/components/EmailForm/EmailForm.js +1 -1
- package/src/lib/components/PhoneNumberField/PhoneNumberField.cjs +1 -1
- package/src/lib/components/PhoneNumberField/PhoneNumberField.js +1 -1
- package/src/lib/components/Portal/Portal.cjs +2 -1
- package/src/lib/components/Portal/Portal.js +2 -1
- package/src/lib/components/RadioButton/RadioButton.cjs +14 -0
- package/src/lib/components/RadioButton/RadioButton.d.ts +5 -0
- package/src/lib/components/RadioButton/RadioButton.js +10 -0
- package/src/lib/components/RadioButton/index.d.ts +1 -0
- package/src/lib/components/Tooltip/Tooltip.cjs +2 -1
- package/src/lib/components/Tooltip/Tooltip.js +2 -1
- package/src/lib/components/UserProfile/parts/UserProfileField/UserProfileField.cjs +1 -1
- package/src/lib/components/UserProfile/parts/UserProfileField/UserProfileField.d.ts +2 -1
- package/src/lib/components/UserProfile/parts/UserProfileField/UserProfileField.js +1 -1
- package/src/lib/components/index.d.ts +1 -0
- package/src/lib/context/DynamicContext/DynamicContext.cjs +23 -7
- package/src/lib/context/DynamicContext/DynamicContext.d.ts +5 -0
- package/src/lib/context/DynamicContext/DynamicContext.js +20 -4
- package/src/lib/context/DynamicContext/hooks/useTieCallbacksToEvents/useTieCallbacksToEvents.cjs +2 -2
- package/src/lib/context/DynamicContext/hooks/useTieCallbacksToEvents/useTieCallbacksToEvents.js +2 -2
- package/src/lib/context/DynamicContext/types/index.d.ts +0 -1
- package/src/lib/context/DynamicContext/useCustomerCallbacks/useCustomerCallbacks.cjs +5 -2
- package/src/lib/context/DynamicContext/useCustomerCallbacks/useCustomerCallbacks.js +5 -2
- package/src/lib/context/DynamicContext/useDynamicContext/useDynamicContext.cjs +2 -1
- package/src/lib/context/DynamicContext/useDynamicContext/useDynamicContext.d.ts +1 -1
- package/src/lib/context/DynamicContext/useDynamicContext/useDynamicContext.js +2 -1
- package/src/lib/context/ErrorBoundary/ErrorBoundary.cjs +64 -0
- package/src/lib/context/ErrorBoundary/ErrorBoundary.d.ts +3 -0
- package/src/lib/context/ErrorBoundary/ErrorBoundary.js +60 -0
- package/src/lib/context/ErrorBoundary/ErrorBoundaryBase.cjs +40 -0
- package/src/lib/context/ErrorBoundary/ErrorBoundaryBase.d.ts +14 -0
- package/src/lib/context/ErrorBoundary/ErrorBoundaryBase.js +36 -0
- package/src/lib/context/ErrorBoundary/ErrorBoundaryContext.cjs +24 -0
- package/src/lib/context/ErrorBoundary/ErrorBoundaryContext.d.ts +5 -0
- package/src/lib/context/ErrorBoundary/ErrorBoundaryContext.js +18 -0
- package/src/lib/context/ErrorBoundary/ErrorBoundaryExclude.cjs +17 -0
- package/src/lib/context/ErrorBoundary/ErrorBoundaryExclude.d.ts +4 -0
- package/src/lib/context/ErrorBoundary/ErrorBoundaryExclude.js +13 -0
- package/src/lib/context/ErrorBoundary/ErrorBoundaryInclude.cjs +17 -0
- package/src/lib/context/ErrorBoundary/ErrorBoundaryInclude.d.ts +4 -0
- package/src/lib/context/ErrorBoundary/ErrorBoundaryInclude.js +13 -0
- package/src/lib/context/ErrorBoundary/index.d.ts +3 -0
- package/src/lib/context/ErrorBoundary/types.d.ts +13 -0
- package/src/lib/context/ViewContext/ViewContext.cjs +2 -2
- package/src/lib/context/ViewContext/ViewContext.js +2 -2
- package/src/lib/context/ViewContext/types/index.d.ts +7 -2
- package/src/lib/data/api/chains/balances.cjs +38 -0
- package/src/lib/data/api/chains/balances.d.ts +8 -0
- package/src/lib/data/api/chains/balances.js +34 -0
- package/src/lib/data/api/chains/index.d.ts +1 -0
- package/src/lib/data/api/user/user.cjs +16 -0
- package/src/lib/data/api/user/user.js +16 -1
- package/src/lib/data/api/wallets/wallets.cjs +26 -6
- package/src/lib/data/api/wallets/wallets.d.ts +4 -0
- package/src/lib/data/api/wallets/wallets.js +26 -7
- package/src/lib/events/dynamicEvents.d.ts +1 -1
- package/src/lib/layout/DynamicAuthLayout/Header/header.cjs +6 -0
- package/src/lib/layout/DynamicAuthLayout/Header/header.js +6 -0
- package/src/lib/locale/en/translation.cjs +45 -4
- package/src/lib/locale/en/translation.d.ts +44 -3
- package/src/lib/locale/en/translation.js +45 -4
- package/src/lib/shared/types/dynamicEventsCallbacks.d.ts +2 -1
- package/src/lib/shared/types/general.d.ts +1 -0
- package/src/lib/shared/utils/classes/storage/localStorage.cjs +2 -2
- package/src/lib/shared/utils/classes/storage/localStorage.js +2 -2
- 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 +2 -2
- package/src/lib/utils/constants/errors.d.ts +1 -0
- package/src/lib/utils/constants/errors.js +2 -2
- package/src/lib/utils/functions/addPasskeyIdentifierToWalletConnector/addPasskeyIdentifierToWalletConnector.cjs +14 -0
- package/src/lib/utils/functions/addPasskeyIdentifierToWalletConnector/addPasskeyIdentifierToWalletConnector.d.ts +3 -0
- package/src/lib/utils/functions/addPasskeyIdentifierToWalletConnector/addPasskeyIdentifierToWalletConnector.js +10 -0
- package/src/lib/utils/functions/addPasskeyIdentifierToWalletConnector/index.d.ts +1 -0
- package/src/lib/utils/functions/createUserProfile/createUserProfile.cjs +1 -2
- package/src/lib/utils/functions/createUserProfile/createUserProfile.js +1 -2
- package/src/lib/utils/functions/findEmbeddedWalletFromVerifiedCredentials/findEmbeddedWalletFromVerifiedCredentials.cjs +3 -4
- package/src/lib/utils/functions/findEmbeddedWalletFromVerifiedCredentials/findEmbeddedWalletFromVerifiedCredentials.d.ts +1 -1
- package/src/lib/utils/functions/findEmbeddedWalletFromVerifiedCredentials/findEmbeddedWalletFromVerifiedCredentials.js +4 -5
- package/src/lib/utils/functions/findTurnkeyWallet/findTurnkeyWallet.cjs +12 -9
- package/src/lib/utils/functions/findTurnkeyWallet/findTurnkeyWallet.d.ts +8 -2
- package/src/lib/utils/functions/findTurnkeyWallet/findTurnkeyWallet.js +13 -10
- package/src/lib/utils/functions/findTurnkeyWallet/index.d.ts +1 -1
- package/src/lib/utils/functions/getUserVerifiedCredentialType/getUserVerifiedCredentialType.cjs +5 -5
- package/src/lib/utils/functions/getUserVerifiedCredentialType/getUserVerifiedCredentialType.d.ts +3 -2
- package/src/lib/utils/functions/getUserVerifiedCredentialType/getUserVerifiedCredentialType.js +5 -5
- package/src/lib/utils/functions/hasEmbeddedWallet/hasEmbeddedWallet.cjs +7 -2
- package/src/lib/utils/functions/hasEmbeddedWallet/hasEmbeddedWallet.js +7 -2
- package/src/lib/utils/functions/index.d.ts +2 -1
- package/src/lib/utils/functions/serializeWalletConnectors/index.d.ts +1 -0
- package/src/lib/utils/functions/serializeWalletConnectors/serializeWalletConnectors.cjs +32 -0
- package/src/lib/utils/functions/serializeWalletConnectors/serializeWalletConnectors.d.ts +2 -0
- package/src/lib/utils/functions/serializeWalletConnectors/serializeWalletConnectors.js +28 -0
- package/src/lib/utils/hooks/index.d.ts +2 -0
- package/src/lib/utils/hooks/useAuthLayoutChecks/useAuthLayoutChecks.cjs +22 -17
- package/src/lib/utils/hooks/useAuthLayoutChecks/useAuthLayoutChecks.js +22 -17
- package/src/lib/utils/hooks/useConfirmationModal/useConfirmationModal.cjs +2 -1
- package/src/lib/utils/hooks/useConfirmationModal/useConfirmationModal.js +2 -1
- package/src/lib/utils/hooks/useCreateDynamicEmbeddedWalletMutation/useCreateDynamicEmbeddedWalletMutation.cjs +22 -18
- package/src/lib/utils/hooks/useCreateDynamicEmbeddedWalletMutation/useCreateDynamicEmbeddedWalletMutation.d.ts +7 -2
- package/src/lib/utils/hooks/useCreateDynamicEmbeddedWalletMutation/useCreateDynamicEmbeddedWalletMutation.js +22 -18
- package/src/lib/utils/hooks/useDynamicLayoutData/useDynamicLayoutData.cjs +8 -0
- package/src/lib/utils/hooks/useDynamicLayoutData/useDynamicLayoutData.js +8 -0
- package/src/lib/utils/hooks/useDynamicScopes/useDynamicScopes.cjs +3 -3
- package/src/lib/utils/hooks/useDynamicScopes/useDynamicScopes.js +3 -3
- package/src/lib/utils/hooks/useElementById/useElementById.cjs +33 -18
- package/src/lib/utils/hooks/useElementById/useElementById.d.ts +3 -1
- package/src/lib/utils/hooks/useElementById/useElementById.js +33 -18
- package/src/lib/utils/hooks/useEmbeddedWallet/useEmbeddedWallet.cjs +46 -11
- package/src/lib/utils/hooks/useEmbeddedWallet/useEmbeddedWallet.d.ts +23 -2
- package/src/lib/utils/hooks/useEmbeddedWallet/useEmbeddedWallet.js +46 -11
- package/src/lib/utils/hooks/useEmbeddedWallet/useMPCEmbeddedWallet/useCoinbaseMPC/useCoinbaseMPC.cjs +6 -6
- package/src/lib/utils/hooks/useEmbeddedWallet/useMPCEmbeddedWallet/useCoinbaseMPC/useCoinbaseMPC.d.ts +1 -1
- package/src/lib/utils/hooks/useEmbeddedWallet/useMPCEmbeddedWallet/useCoinbaseMPC/useCoinbaseMPC.js +6 -6
- package/src/lib/utils/hooks/useEmbeddedWallet/useMPCEmbeddedWallet/useMPCEmbeddedWallet.cjs +13 -9
- package/src/lib/utils/hooks/useEmbeddedWallet/useMPCEmbeddedWallet/useMPCEmbeddedWallet.d.ts +3 -2
- package/src/lib/utils/hooks/useEmbeddedWallet/useMPCEmbeddedWallet/useMPCEmbeddedWallet.js +13 -9
- package/src/lib/utils/hooks/useEmbeddedWallet/useSecureEnclaveEmbeddedWallet/constants.cjs +4 -0
- package/src/lib/utils/hooks/useEmbeddedWallet/useSecureEnclaveEmbeddedWallet/constants.d.ts +2 -0
- package/src/lib/utils/hooks/useEmbeddedWallet/useSecureEnclaveEmbeddedWallet/constants.js +3 -1
- package/src/lib/utils/hooks/useEmbeddedWallet/useSecureEnclaveEmbeddedWallet/useSecureEnclaveEmbeddedWallet.cjs +192 -50
- package/src/lib/utils/hooks/useEmbeddedWallet/useSecureEnclaveEmbeddedWallet/useSecureEnclaveEmbeddedWallet.d.ts +26 -8
- package/src/lib/utils/hooks/useEmbeddedWallet/useSecureEnclaveEmbeddedWallet/useSecureEnclaveEmbeddedWallet.js +197 -55
- package/src/lib/utils/hooks/useEmbeddedWallet/useSecureEnclaveEmbeddedWallet/useTurnkey/useTurnkey.cjs +45 -18
- package/src/lib/utils/hooks/useEmbeddedWallet/useSecureEnclaveEmbeddedWallet/useTurnkey/useTurnkey.d.ts +4 -1
- package/src/lib/utils/hooks/useEmbeddedWallet/useSecureEnclaveEmbeddedWallet/useTurnkey/useTurnkey.js +45 -18
- package/src/lib/utils/hooks/useIsTurnkeyWallet/useIsTurnkeyWallet.cjs +2 -2
- package/src/lib/utils/hooks/useIsTurnkeyWallet/useIsTurnkeyWallet.js +2 -2
- package/src/lib/utils/hooks/useMergeUserAccounts/index.d.ts +1 -0
- package/src/lib/utils/hooks/useMergeUserAccounts/useMergeUserAccounts.cjs +99 -0
- package/src/lib/utils/hooks/useMergeUserAccounts/useMergeUserAccounts.d.ts +4 -0
- package/src/lib/utils/hooks/useMergeUserAccounts/useMergeUserAccounts.js +95 -0
- package/src/lib/utils/hooks/usePasskeyRecovery/usePasskeyRecovery.cjs +2 -1
- package/src/lib/utils/hooks/usePasskeyRecovery/usePasskeyRecovery.js +2 -1
- package/src/lib/utils/hooks/usePrimaryWalletId/usePrimaryWalletId.cjs +13 -4
- package/src/lib/utils/hooks/usePrimaryWalletId/usePrimaryWalletId.d.ts +10 -2
- package/src/lib/utils/hooks/usePrimaryWalletId/usePrimaryWalletId.js +13 -4
- package/src/lib/utils/hooks/useSendDynamicProps/useSendDynamicProps.cjs +6 -13
- package/src/lib/utils/hooks/useSendDynamicProps/useSendDynamicProps.d.ts +1 -3
- package/src/lib/utils/hooks/useSendDynamicProps/useSendDynamicProps.js +6 -12
- package/src/lib/utils/hooks/useTokenBalances/index.d.ts +1 -0
- package/src/lib/utils/hooks/useTokenBalances/useTokenBalances.cjs +141 -0
- package/src/lib/utils/hooks/useTokenBalances/useTokenBalances.d.ts +12 -0
- package/src/lib/utils/hooks/useTokenBalances/useTokenBalances.js +137 -0
- package/src/lib/utils/hooks/useVerifyWallet/useVerifyWallet.cjs +5 -0
- package/src/lib/utils/hooks/useVerifyWallet/useVerifyWallet.js +6 -1
- package/src/lib/utils/hooks/useWalletConnectorOptions/useWalletConnectorOptions.cjs +25 -2
- package/src/lib/utils/hooks/useWalletConnectorOptions/useWalletConnectorOptions.js +25 -2
- package/src/lib/utils/hooks/useWalletEventListeners/useWalletEventListeners.cjs +2 -4
- package/src/lib/utils/hooks/useWalletEventListeners/useWalletEventListeners.d.ts +2 -1
- package/src/lib/utils/hooks/useWalletEventListeners/useWalletEventListeners.js +2 -4
- package/src/lib/views/CollectUserDataView/UserDataFields/UserField/UserField.cjs +3 -3
- package/src/lib/views/CollectUserDataView/UserDataFields/UserField/UserField.js +3 -3
- package/src/lib/views/CollectUserDataView/useFields.cjs +1 -0
- package/src/lib/views/CollectUserDataView/useFields.d.ts +2 -0
- package/src/lib/views/CollectUserDataView/useFields.js +1 -0
- package/src/lib/views/EmailVerification/EmailVerification.cjs +38 -11
- package/src/lib/views/EmailVerification/EmailVerification.js +38 -11
- package/src/lib/views/EmbeddedReveal/EmbeddedRevealView/EmbeddedRevealView.cjs +1 -1
- package/src/lib/views/EmbeddedReveal/EmbeddedRevealView/EmbeddedRevealView.js +1 -1
- package/src/lib/views/EmbeddedReveal/utils/turnkeyExport/turnkeyExport.cjs +6 -5
- package/src/lib/views/EmbeddedReveal/utils/turnkeyExport/turnkeyExport.js +6 -5
- package/src/lib/views/MergeUserAccountsConflictsView/MergeUserAccountsConflictsView.cjs +126 -0
- package/src/lib/views/MergeUserAccountsConflictsView/MergeUserAccountsConflictsView.d.ts +6 -0
- package/src/lib/views/MergeUserAccountsConflictsView/MergeUserAccountsConflictsView.js +122 -0
- package/src/lib/views/MergeUserAccountsConflictsView/index.d.ts +1 -0
- package/src/lib/views/MergeUserAccountsView/MergeUserAccountsView.cjs +123 -0
- package/src/lib/views/MergeUserAccountsView/MergeUserAccountsView.d.ts +4 -0
- package/src/lib/views/MergeUserAccountsView/MergeUserAccountsView.js +119 -0
- package/src/lib/views/MergeUserAccountsView/index.d.ts +1 -0
- package/src/lib/views/MergeUserAccountsWithSameEmailView/MergeUserAccountsWithSameEmailView.cjs +3 -3
- package/src/lib/views/MergeUserAccountsWithSameEmailView/MergeUserAccountsWithSameEmailView.js +3 -3
- package/src/lib/views/NetworkNotSupportedSwitchManual/NetworkNotSupportedSwitchManual.cjs +2 -3
- package/src/lib/views/NetworkNotSupportedSwitchManual/NetworkNotSupportedSwitchManual.js +2 -3
- package/src/lib/views/Passkey/EmbeddedAuthChoiceCards/EmbeddedAuthChoiceCards.cjs +2 -1
- package/src/lib/views/Passkey/EmbeddedAuthChoiceCards/EmbeddedAuthChoiceCards.js +2 -1
- package/src/lib/views/Passkey/PasskeyIntroView/PasskeyIntroView.cjs +9 -9
- package/src/lib/views/Passkey/PasskeyIntroView/PasskeyIntroView.d.ts +6 -1
- package/src/lib/views/Passkey/PasskeyIntroView/PasskeyIntroView.js +9 -9
- 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/{createEmbeddedWalletWithPasskey/createEmbeddedWalletWithPasskey.cjs → createEmbeddedWalletRequest/createEmbeddedWalletRequest.cjs} +18 -19
- package/src/lib/views/Passkey/utils/{createEmbeddedWalletWithPasskey/createEmbeddedWalletWithPasskey.d.ts → createEmbeddedWalletRequest/createEmbeddedWalletRequest.d.ts} +7 -3
- package/src/lib/views/Passkey/utils/{createEmbeddedWalletWithPasskey/createEmbeddedWalletWithPasskey.js → createEmbeddedWalletRequest/createEmbeddedWalletRequest.js} +18 -19
- package/src/lib/views/Passkey/utils/createEmbeddedWalletRequest/index.d.ts +1 -0
- package/src/lib/views/Passkey/utils/findPrimaryEmbeddedChain/findPrimaryEmbeddedChain.cjs +16 -0
- package/src/lib/views/Passkey/utils/findPrimaryEmbeddedChain/findPrimaryEmbeddedChain.d.ts +2 -0
- package/src/lib/views/Passkey/utils/findPrimaryEmbeddedChain/findPrimaryEmbeddedChain.js +12 -0
- package/src/lib/views/Passkey/utils/findPrimaryEmbeddedChain/index.d.ts +1 -0
- package/src/lib/views/Passkey/utils/index.d.ts +1 -2
- package/src/lib/views/Passkey/utils/passkeyRecovery/passkeyRecovery.cjs +9 -9
- package/src/lib/views/Passkey/utils/passkeyRecovery/passkeyRecovery.js +9 -9
- package/src/lib/views/WalletList/WalletList.cjs +3 -6
- package/src/lib/views/WalletList/WalletList.js +3 -6
- package/src/lib/views/WalletLockedView/WalletLockedView.cjs +2 -8
- package/src/lib/views/WalletLockedView/WalletLockedView.js +2 -8
- package/src/lib/views/viewToComponentMap.cjs +4 -0
- package/src/lib/views/viewToComponentMap.d.ts +6 -2
- package/src/lib/views/viewToComponentMap.js +4 -0
- package/src/lib/widgets/DynamicWidget/components/PromptModal/PromptModal.cjs +2 -1
- package/src/lib/widgets/DynamicWidget/components/PromptModal/PromptModal.js +2 -1
- package/src/lib/widgets/DynamicWidget/hooks/useFetchNameService/useFetchNameService.cjs +1 -1
- package/src/lib/widgets/DynamicWidget/hooks/useFetchNameService/useFetchNameService.js +1 -1
- package/src/lib/utils/functions/isEmbeddedWalletPresent/index.d.ts +0 -1
- package/src/lib/utils/functions/isEmbeddedWalletPresent/isEmbeddedWalletPresent.cjs +0 -19
- package/src/lib/utils/functions/isEmbeddedWalletPresent/isEmbeddedWalletPresent.d.ts +0 -1
- package/src/lib/utils/functions/isEmbeddedWalletPresent/isEmbeddedWalletPresent.js +0 -15
- package/src/lib/views/Passkey/utils/createEmbeddedWalletWithPasskey/index.d.ts +0 -1
- package/src/lib/views/Passkey/utils/createPregeneratedWallet/createPregeneratedWallet.cjs +0 -65
- package/src/lib/views/Passkey/utils/createPregeneratedWallet/createPregeneratedWallet.d.ts +0 -16
- package/src/lib/views/Passkey/utils/createPregeneratedWallet/createPregeneratedWallet.js +0 -61
- package/src/lib/views/Passkey/utils/createPregeneratedWallet/index.d.ts +0 -1
|
@@ -5,9 +5,9 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
5
5
|
|
|
6
6
|
var _tslib = require('../../../../../../_virtual/_tslib.cjs');
|
|
7
7
|
var React = require('react');
|
|
8
|
+
var sdkApiCore = require('@dynamic-labs/sdk-api-core');
|
|
8
9
|
var utils = require('@dynamic-labs/utils');
|
|
9
10
|
require('../../../../context/DynamicContext/DynamicContext.cjs');
|
|
10
|
-
require('@dynamic-labs/sdk-api-core');
|
|
11
11
|
var logger = require('../../../../shared/logger.cjs');
|
|
12
12
|
require('@dynamic-labs/iconic');
|
|
13
13
|
require('@dynamic-labs/wallet-connector-core');
|
|
@@ -28,12 +28,15 @@ require('@dynamic-labs/multi-wallet');
|
|
|
28
28
|
var getAuthToken = require('../../../functions/getAuthToken/getAuthToken.cjs');
|
|
29
29
|
require('react-international-phone');
|
|
30
30
|
var getUserWalletsFromVerifiedCredentials = require('../../../functions/getUserWalletsFromVerifiedCredentials/getUserWalletsFromVerifiedCredentials.cjs');
|
|
31
|
+
var addPasskeyIdentifierToWalletConnector = require('../../../functions/addPasskeyIdentifierToWalletConnector/addPasskeyIdentifierToWalletConnector.cjs');
|
|
31
32
|
require('viem');
|
|
32
33
|
require('viem/chains');
|
|
33
34
|
var getEOAWallet = require('../../../functions/getEOAWallet/getEOAWallet.cjs');
|
|
34
35
|
require('../../../../config/ApiEndpoint.cjs');
|
|
35
36
|
var embeddedWallets = require('../../../../data/api/embeddedWallets/embeddedWallets.cjs');
|
|
36
37
|
require('../../../../locale/locale.cjs');
|
|
38
|
+
var updateJWTAndCreateUserProfile = require('../../../functions/updateJWTAndCreateUserProfile/updateJWTAndCreateUserProfile.cjs');
|
|
39
|
+
var getUserVerifiedCredentialType = require('../../../functions/getUserVerifiedCredentialType/getUserVerifiedCredentialType.cjs');
|
|
37
40
|
var hasEmbeddedWallet = require('../../../functions/hasEmbeddedWallet/hasEmbeddedWallet.cjs');
|
|
38
41
|
var getEmbeddedWalletAuthHandler = require('../../../functions/getEmbeddedWalletAuthHandler/getEmbeddedWalletAuthHandler.cjs');
|
|
39
42
|
var getEmbeddedWalletSessionExpiration = require('../../../functions/getEmbeddedWalletSessionExpiration/getEmbeddedWalletSessionExpiration.cjs');
|
|
@@ -44,11 +47,12 @@ require('../../../../context/VerificationContext/VerificationContext.cjs');
|
|
|
44
47
|
require('react-dom');
|
|
45
48
|
var useElementById = require('../../useElementById/useElementById.cjs');
|
|
46
49
|
var WalletContext = require('../../../../context/WalletContext/WalletContext.cjs');
|
|
50
|
+
var useIsTurnkeyWallet = require('../../useIsTurnkeyWallet/useIsTurnkeyWallet.cjs');
|
|
47
51
|
var validateUserIsLoggedIn = require('../../../validations/validateUserIsLoggedIn/validateUserIsLoggedIn.cjs');
|
|
48
52
|
var validateTurnkeyProviderEnabled = require('../../../validations/validateTurnkeyProviderEnabled/validateTurnkeyProviderEnabled.cjs');
|
|
49
53
|
var errors = require('../../../constants/errors.cjs');
|
|
50
|
-
var useIsTurnkeyWallet = require('../../useIsTurnkeyWallet/useIsTurnkeyWallet.cjs');
|
|
51
54
|
var passkeyRecovery = require('../../../../views/Passkey/utils/passkeyRecovery/passkeyRecovery.cjs');
|
|
55
|
+
var turnkeyExport = require('../../../../views/EmbeddedReveal/utils/turnkeyExport/turnkeyExport.cjs');
|
|
52
56
|
var useTurnkey = require('./useTurnkey/useTurnkey.cjs');
|
|
53
57
|
var constants = require('./constants.cjs');
|
|
54
58
|
require('../../../../context/ThemeContext/ThemeContext.cjs');
|
|
@@ -92,30 +96,47 @@ require('../../../../views/TransactionConfirmationView/helpers/transactionErrorM
|
|
|
92
96
|
require('../../../../widgets/DynamicWidget/views/ManagePasskeysWidgetView/PasskeyCard/PasskeyCard.cjs');
|
|
93
97
|
var useInternalDynamicContext = require('../../../../context/DynamicContext/useDynamicContext/useInternalDynamicContext.cjs');
|
|
94
98
|
|
|
95
|
-
// Hook exposed to customers
|
|
99
|
+
// Hook exposed to customers
|
|
96
100
|
/**
|
|
101
|
+
*
|
|
97
102
|
* @returns {
|
|
98
|
-
*
|
|
99
|
-
*
|
|
100
|
-
*
|
|
103
|
+
* createEmbeddedWallet, - creates Secure enclave embedded wallet according to the settings
|
|
104
|
+
* createOrRestoreSession, - creates or restores a embedded wallet session
|
|
105
|
+
* createPasskey, - creates a new passkey both for an existing wallet or a wallet to be created
|
|
106
|
+
* getPasskeys, - gets all passkeys for the user
|
|
107
|
+
* isLoadingEmbeddedWallet, - loading state of the embedded wallet
|
|
108
|
+
* isSessionActive, - checks if the embedded wallet session is active
|
|
109
|
+
* revealEmbeddedWalletKey - export the recovery phrase or private key of the embedded wallet
|
|
110
|
+
* sendOneTimeCode, - sends a one-time code to the user so they can create a session or add a new passkey
|
|
111
|
+
* userHasEmbeddedWallet, - checks if the user has an embedded wallet
|
|
101
112
|
* }
|
|
102
113
|
*/
|
|
103
114
|
const useSecureEnclaveEmbeddedWallet = () => {
|
|
104
|
-
var _a, _b;
|
|
105
|
-
const { projectSettings, onboardingOnlyJwt, primaryWallet, user, environmentId, } = useInternalDynamicContext.useInternalDynamicContext();
|
|
115
|
+
var _a, _b, _c, _d;
|
|
116
|
+
const { projectSettings, authToken, onboardingOnlyJwt, primaryWallet, user, environmentId, walletConnectorOptions, setUser, } = useInternalDynamicContext.useInternalDynamicContext();
|
|
106
117
|
const { createTurnkeyWallet } = useTurnkey.useTurnkey();
|
|
107
118
|
const { hasRecoveryEmail } = useIsTurnkeyWallet.useIsTurnkeyWallet();
|
|
108
|
-
const
|
|
119
|
+
const { createRootElement } = useElementById.useElementById();
|
|
109
120
|
const { isLoadingEmbeddedWallet, setIsLoadingEmbeddedWallet } = WalletContext.useWalletContext();
|
|
110
121
|
const wallet = getEOAWallet.getEOAWallet(primaryWallet, (user === null || user === void 0 ? void 0 : user.verifiedCredentials) || []);
|
|
122
|
+
/**
|
|
123
|
+
* Checks if the user has a secure enclave embedded wallet or not
|
|
124
|
+
* @returns boolean
|
|
125
|
+
*/
|
|
111
126
|
const userHasEmbeddedWallet = React.useCallback(() => hasEmbeddedWallet.hasEmbeddedWallet(getAuthToken.getAuthToken() || onboardingOnlyJwt, 'turnkey'), [onboardingOnlyJwt]);
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
127
|
+
/**
|
|
128
|
+
* Creates a new secure enclave embedded wallet according to the settings from the dashboard
|
|
129
|
+
* @param chain - optional chain parameter to create the wallet for
|
|
130
|
+
* @param options - optional parameter contained more settings for the wallet creation
|
|
131
|
+
* @returns Promise<Wallet | undefined>
|
|
132
|
+
*/
|
|
133
|
+
const createEmbeddedWallet = React.useCallback((chains, options) => _tslib.__awaiter(void 0, void 0, void 0, function* () {
|
|
134
|
+
var _e, _f;
|
|
135
|
+
const jwt = (_e = getAuthToken.getAuthToken()) !== null && _e !== void 0 ? _e : onboardingOnlyJwt;
|
|
115
136
|
const { decodedJwt } = validateUserIsLoggedIn.validateUserIsLoggedIn(jwt);
|
|
116
137
|
const userWaletsCredentials = getUserWalletsFromVerifiedCredentials.getUserWalletsFromVerifiedCredentials(jwt);
|
|
117
|
-
const embeddedWalletVerifiedCredential = findEmbeddedWalletFromVerifiedCredentials.findEmbeddedWalletFromVerifiedCredentials(jwt,
|
|
118
|
-
const isManualMode = ((
|
|
138
|
+
const embeddedWalletVerifiedCredential = findEmbeddedWalletFromVerifiedCredentials.findEmbeddedWalletFromVerifiedCredentials(jwt, chains);
|
|
139
|
+
const isManualMode = ((_f = projectSettings === null || projectSettings === void 0 ? void 0 : projectSettings.sdk.embeddedWallets) === null || _f === void 0 ? void 0 : _f.automaticEmbeddedWalletCreation) === false;
|
|
119
140
|
// if user has a wallet and it's not embedded,
|
|
120
141
|
// throw error to follow another flow and set up the right wallet
|
|
121
142
|
// However, if the user is in manual mode continue.
|
|
@@ -125,91 +146,209 @@ const useSecureEnclaveEmbeddedWallet = () => {
|
|
|
125
146
|
throw new utils.DynamicError('Manual mode must be enabled to create an embedded wallet for this user');
|
|
126
147
|
}
|
|
127
148
|
validateTurnkeyProviderEnabled.validateTurnkeyProviderEnabled(projectSettings);
|
|
128
|
-
setIsLoadingEmbeddedWallet(true);
|
|
129
149
|
// TEMP: immediately disable loading state
|
|
130
150
|
setIsLoadingEmbeddedWallet(false);
|
|
131
|
-
|
|
132
|
-
return wallet;
|
|
151
|
+
return createTurnkeyWallet(jwt, decodedJwt, chains, options);
|
|
133
152
|
}), [
|
|
134
153
|
createTurnkeyWallet,
|
|
135
154
|
onboardingOnlyJwt,
|
|
136
155
|
projectSettings,
|
|
137
156
|
setIsLoadingEmbeddedWallet,
|
|
138
157
|
]);
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
158
|
+
/**
|
|
159
|
+
* Creates or restores a secure enclave embedded wallet session
|
|
160
|
+
* If it detects that the session is possible to be restored, it will restore it
|
|
161
|
+
* @param oneTimeCode - optional one-time code parameter. If not informed it tries to restore a session
|
|
162
|
+
* @returns Promise<'session_created' | 'session_restored'> - returns a string indicating the status of the session
|
|
163
|
+
*/
|
|
164
|
+
const createOrRestoreSession = React.useCallback((options) => _tslib.__awaiter(void 0, void 0, void 0, function* () {
|
|
165
|
+
var _g, _h, _j, _k, _l, _m, _o;
|
|
166
|
+
const jwt = (_g = getAuthToken.getAuthToken()) !== null && _g !== void 0 ? _g : onboardingOnlyJwt;
|
|
142
167
|
const { decodedJwt } = validateUserIsLoggedIn.validateUserIsLoggedIn(jwt);
|
|
143
168
|
const turnkeyRecoveryHandler = getEmbeddedWalletAuthHandler.getEmbeddedWalletAuthHandler(wallet === null || wallet === void 0 ? void 0 : wallet.connector);
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
169
|
+
if (turnkeyRecoveryHandler.isSessionActive()) {
|
|
170
|
+
return errors.ACTIVE_SESSION;
|
|
171
|
+
}
|
|
172
|
+
const turnkeyAuthIframeContainerRef = createRootElement(constants.iframeContainerId);
|
|
173
|
+
// try to restore session if possible
|
|
174
|
+
if (passkeyRecovery.canRestoreEmbeddedWalletSession((_h = projectSettings === null || projectSettings === void 0 ? void 0 : projectSettings.sdk.embeddedWallets) === null || _h === void 0 ? void 0 : _h.sessionKeyDuration)) {
|
|
147
175
|
try {
|
|
148
|
-
yield passkeyRecovery.restoreEmbeddedWalletSession({
|
|
176
|
+
const sessionRestored = yield passkeyRecovery.restoreEmbeddedWalletSession({
|
|
149
177
|
authToken: jwt,
|
|
150
178
|
iframeContainer: turnkeyAuthIframeContainerRef.current,
|
|
151
179
|
iframeElementId: constants.iframeElementId,
|
|
152
|
-
sessionExpiration: getEmbeddedWalletSessionExpiration.getEmbeddedWalletSessionExpiration((
|
|
180
|
+
sessionExpiration: getEmbeddedWalletSessionExpiration.getEmbeddedWalletSessionExpiration((_k = (_j = projectSettings === null || projectSettings === void 0 ? void 0 : projectSettings.sdk) === null || _j === void 0 ? void 0 : _j.embeddedWallets) === null || _k === void 0 ? void 0 : _k.sessionKeyDuration),
|
|
153
181
|
wallet: primaryWallet,
|
|
154
182
|
});
|
|
155
|
-
|
|
183
|
+
if (sessionRestored)
|
|
184
|
+
return errors.SESSION_RESTORED;
|
|
156
185
|
}
|
|
157
186
|
catch (err) {
|
|
158
187
|
logger.logger.error('Failed to restore embedded wallet', err);
|
|
159
188
|
}
|
|
160
189
|
}
|
|
161
|
-
|
|
162
|
-
if (!oneTimeCode) {
|
|
190
|
+
if (!(options === null || options === void 0 ? void 0 : options.oneTimeCode)) {
|
|
163
191
|
throw new utils.DynamicError('One-time code is required to create a session.', errors.INVALID_REQUEST);
|
|
164
192
|
}
|
|
193
|
+
// tries to create a new session with the informed one-time code
|
|
165
194
|
// verify user has a turnkey wallet and email VC
|
|
166
195
|
if (!userHasEmbeddedWallet() || !hasRecoveryEmail) {
|
|
167
196
|
throw new utils.DynamicError('User does not have a secure enclave wallet or a verified email', errors.INVALID_WALLET_DATA);
|
|
168
197
|
}
|
|
169
|
-
const organizationId = (
|
|
170
|
-
yield turnkeyRecoveryHandler.verifyRecoveryCode(oneTimeCode, organizationId);
|
|
198
|
+
const organizationId = (_o = (_m = (_l = decodedJwt.verifiedCredentials) === null || _l === void 0 ? void 0 : _l.find(({ walletName }) => walletName === null || walletName === void 0 ? void 0 : walletName.startsWith('turnkey'))) === null || _m === void 0 ? void 0 : _m.walletProperties) === null || _o === void 0 ? void 0 : _o.turnkeySubOrganizationId;
|
|
199
|
+
yield turnkeyRecoveryHandler.verifyRecoveryCode(options.oneTimeCode, organizationId);
|
|
171
200
|
const sessionSettings = {
|
|
172
201
|
createdAt: new Date().getTime(),
|
|
173
|
-
emailCode: oneTimeCode,
|
|
202
|
+
emailCode: options.oneTimeCode,
|
|
174
203
|
userId: turnkeyRecoveryHandler.recoveryUserId,
|
|
175
204
|
};
|
|
176
205
|
localStorage.LocalStorage.setToLS(localStorage$1.EMBEDDED_WALLET_SESSION_SETTINGS, sessionSettings);
|
|
177
206
|
return errors.SESSION_CREATED;
|
|
178
207
|
}), [
|
|
208
|
+
createRootElement,
|
|
179
209
|
hasRecoveryEmail,
|
|
180
210
|
onboardingOnlyJwt,
|
|
181
211
|
primaryWallet,
|
|
182
212
|
(_b = (_a = projectSettings === null || projectSettings === void 0 ? void 0 : projectSettings.sdk) === null || _a === void 0 ? void 0 : _a.embeddedWallets) === null || _b === void 0 ? void 0 : _b.sessionKeyDuration,
|
|
183
|
-
turnkeyAuthIframeContainerRef,
|
|
184
213
|
userHasEmbeddedWallet,
|
|
185
214
|
wallet === null || wallet === void 0 ? void 0 : wallet.connector,
|
|
186
215
|
]);
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
216
|
+
/**
|
|
217
|
+
* Creates a new passkey both for an existing wallet or a wallet to be created
|
|
218
|
+
* @param options - optional parameter to inform a one-time code to create a session,
|
|
219
|
+
* @returns Promise<WebAuthnAttestation>
|
|
220
|
+
*/
|
|
221
|
+
const createPasskey = React.useCallback((options) => _tslib.__awaiter(void 0, void 0, void 0, function* () {
|
|
222
|
+
var _p, _q;
|
|
223
|
+
const { decodedJwt, jwt } = validateUserIsLoggedIn.validateUserIsLoggedIn(getAuthToken.getAuthToken() || onboardingOnlyJwt);
|
|
224
|
+
validateTurnkeyProviderEnabled.validateTurnkeyProviderEnabled(projectSettings);
|
|
225
|
+
const turnkeyWallet = findTurnkeyWallet.findTurnkeyWalletByPrimaryChain(walletConnectorOptions, (_p = projectSettings === null || projectSettings === void 0 ? void 0 : projectSettings.sdk.embeddedWallets) === null || _p === void 0 ? void 0 : _p.chainConfigurations, decodedJwt.verifiedCredentials);
|
|
226
|
+
if (!(turnkeyWallet === null || turnkeyWallet === void 0 ? void 0 : turnkeyWallet.walletConnector)) {
|
|
227
|
+
throw new utils.DynamicError('Wallet connector not found', errors.INVALID_WALLET_DATA);
|
|
228
|
+
}
|
|
229
|
+
const walletConnector = turnkeyWallet.walletConnector;
|
|
230
|
+
walletConnector.setEmail(user === null || user === void 0 ? void 0 : user.email);
|
|
231
|
+
if (user && !(user === null || user === void 0 ? void 0 : user.email)) {
|
|
232
|
+
addPasskeyIdentifierToWalletConnector.addPasskeyIdentifierToWalletConnector(walletConnector, user);
|
|
193
233
|
}
|
|
194
|
-
|
|
195
|
-
|
|
234
|
+
const hasEmailVC = getUserVerifiedCredentialType.getUserVerifiedCredentialType(decodedJwt, sdkApiCore.JwtVerifiedCredentialFormatEnum.Email);
|
|
235
|
+
// return a new passkey if the user doesn't have a wallet yet or
|
|
236
|
+
// none of the requirements to add a passkey to an existing wallet are met
|
|
237
|
+
if (!('id' in turnkeyWallet) || !hasEmailVC) {
|
|
238
|
+
return walletConnector.getWebAuthnAttestation();
|
|
196
239
|
}
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
240
|
+
const organizationId = (_q = turnkeyWallet === null || turnkeyWallet === void 0 ? void 0 : turnkeyWallet.walletProperties) === null || _q === void 0 ? void 0 : _q.turnkeySubOrganizationId;
|
|
241
|
+
if (!organizationId) {
|
|
242
|
+
throw new utils.DynamicError('No sub organization id found for the wallet', errors.INVALID_WALLET_DATA);
|
|
243
|
+
}
|
|
244
|
+
const turnkAuthenticatorHandler = getEmbeddedWalletAuthHandler.getEmbeddedWalletAuthHandler(walletConnector);
|
|
245
|
+
// add new passkey to the wallet through an active session
|
|
246
|
+
yield createOrRestoreSession(options);
|
|
247
|
+
const { attestation, challenge, displayName } = yield walletConnector.getWebAuthnAttestation();
|
|
248
|
+
yield turnkAuthenticatorHandler.addPasskeyAuthenticator({
|
|
249
|
+
attestation,
|
|
250
|
+
challenge,
|
|
251
|
+
organizationId,
|
|
252
|
+
});
|
|
253
|
+
const passkeyResponse = yield embeddedWallets.completePasskeyRecovery({
|
|
254
|
+
attestation: attestation,
|
|
255
|
+
challenge,
|
|
256
|
+
environmentId,
|
|
257
|
+
userJwt: jwt,
|
|
258
|
+
walletId: turnkeyWallet === null || turnkeyWallet === void 0 ? void 0 : turnkeyWallet.id,
|
|
259
|
+
});
|
|
260
|
+
const { jwt: updatedJwt, minifiedJwt } = passkeyResponse;
|
|
261
|
+
setUser(updateJWTAndCreateUserProfile.updateJWTAndCreateUserProfile(updatedJwt, minifiedJwt));
|
|
262
|
+
return { attestation, challenge, displayName };
|
|
263
|
+
}), [
|
|
264
|
+
createOrRestoreSession,
|
|
265
|
+
environmentId,
|
|
266
|
+
onboardingOnlyJwt,
|
|
267
|
+
projectSettings,
|
|
268
|
+
setUser,
|
|
269
|
+
user,
|
|
270
|
+
walletConnectorOptions,
|
|
271
|
+
]);
|
|
272
|
+
/**
|
|
273
|
+
* Gets all passkeys for the user
|
|
274
|
+
* @returns Promise<Passkey[]>
|
|
275
|
+
*/
|
|
276
|
+
const getPasskeys = React.useCallback(() => _tslib.__awaiter(void 0, void 0, void 0, function* () {
|
|
277
|
+
var _r;
|
|
278
|
+
const { jwt } = validateUserIsLoggedIn.validateUserIsLoggedIn((_r = getAuthToken.getAuthToken()) !== null && _r !== void 0 ? _r : onboardingOnlyJwt);
|
|
279
|
+
const data = yield embeddedWallets.getUserPasskeys({
|
|
280
|
+
environmentId: environmentId,
|
|
281
|
+
userJwt: jwt,
|
|
282
|
+
});
|
|
283
|
+
return data.passkeys;
|
|
284
|
+
}), [environmentId, onboardingOnlyJwt]);
|
|
285
|
+
/**
|
|
286
|
+
* Checks if the embedded wallet session is active
|
|
287
|
+
* @returns boolean
|
|
288
|
+
*/
|
|
289
|
+
const isSessionActive = (_d = ((wallet === null || wallet === void 0 ? void 0 : wallet.connector) &&
|
|
290
|
+
'getAuthenticatorHandler' in wallet.connector &&
|
|
291
|
+
((_c = getEmbeddedWalletAuthHandler.getEmbeddedWalletAuthHandler(wallet.connector)) === null || _c === void 0 ? void 0 : _c.isSessionActive()))) !== null && _d !== void 0 ? _d : false;
|
|
292
|
+
/**
|
|
293
|
+
* export the recovery phrase or private key of the embedded wallet
|
|
294
|
+
* @param options - optional parameter object containing the type of key to reveal 'recoveryPhrase' | 'privateKey'
|
|
295
|
+
* and the html container id to render the iframe into
|
|
296
|
+
* @returns Promise<string> - returns the embedded wallet recovery phrase or private key
|
|
297
|
+
*/
|
|
298
|
+
const revealEmbeddedWalletKey = (_s) => _tslib.__awaiter(void 0, [_s], void 0, function* ({ type, htmlContainerId, }) {
|
|
299
|
+
var _t, _u;
|
|
300
|
+
if (!user) {
|
|
301
|
+
throw new utils.DynamicError('User is not logged in', errors.USER_NOT_LOGGED_IN);
|
|
302
|
+
}
|
|
303
|
+
yield turnkeyExport.cleanupExport({
|
|
304
|
+
wallet,
|
|
305
|
+
});
|
|
306
|
+
const turnkeyWallet = findTurnkeyWallet.findTurnkeyWalletByPrimaryChain(walletConnectorOptions, (_t = projectSettings === null || projectSettings === void 0 ? void 0 : projectSettings.sdk.embeddedWallets) === null || _t === void 0 ? void 0 : _t.chainConfigurations, user === null || user === void 0 ? void 0 : user.verifiedCredentials);
|
|
307
|
+
const turnkeyHDWalletId = (_u = turnkeyWallet === null || turnkeyWallet === void 0 ? void 0 : turnkeyWallet.walletProperties) === null || _u === void 0 ? void 0 : _u.turnkeyHDWalletId;
|
|
308
|
+
if (type === 'recoveryPhrase' && !turnkeyHDWalletId) {
|
|
309
|
+
type = 'privateKey';
|
|
310
|
+
}
|
|
311
|
+
const iframeContainerElement = createRootElement(constants.revealIframeElementId, htmlContainerId || constants.revealIframeContainerId);
|
|
312
|
+
// hide the iframe container until the export is done
|
|
313
|
+
// since it will show unrelated turnkey content
|
|
314
|
+
iframeContainerElement.current.style.display = 'none';
|
|
315
|
+
yield turnkeyExport.initExport({
|
|
316
|
+
iframeContainer: iframeContainerElement.current,
|
|
317
|
+
iframeElementId: constants.revealIframeElementId,
|
|
318
|
+
wallet,
|
|
319
|
+
});
|
|
320
|
+
yield turnkeyExport.exportCredential({
|
|
321
|
+
address: type === 'privateKey' ? wallet === null || wallet === void 0 ? void 0 : wallet.address : undefined,
|
|
322
|
+
authToken,
|
|
323
|
+
environmentId,
|
|
324
|
+
userEmail: user === null || user === void 0 ? void 0 : user.email,
|
|
325
|
+
wallet,
|
|
326
|
+
});
|
|
327
|
+
// show the iframe container after the export is done
|
|
328
|
+
// to show the exported content only
|
|
329
|
+
iframeContainerElement.current.style.display = 'block';
|
|
330
|
+
return true;
|
|
331
|
+
});
|
|
332
|
+
/**
|
|
333
|
+
* Sends a one-time code to the user so they can create a session or add a new passkey
|
|
334
|
+
* @returns Promise<'code_sent'>
|
|
335
|
+
*/
|
|
336
|
+
const sendOneTimeCode = React.useCallback(() => _tslib.__awaiter(void 0, void 0, void 0, function* () {
|
|
337
|
+
var _v, _w, _x;
|
|
338
|
+
const { jwt, decodedJwt } = validateUserIsLoggedIn.validateUserIsLoggedIn((_v = getAuthToken.getAuthToken()) !== null && _v !== void 0 ? _v : onboardingOnlyJwt);
|
|
201
339
|
validateTurnkeyProviderEnabled.validateTurnkeyProviderEnabled(projectSettings);
|
|
202
|
-
const targetTurnkeyWallet = findTurnkeyWallet.
|
|
203
|
-
if (!targetTurnkeyWallet || !targetTurnkeyWallet
|
|
340
|
+
const targetTurnkeyWallet = findTurnkeyWallet.findTurnkeyWalletByPrimaryChain(walletConnectorOptions, (_w = projectSettings === null || projectSettings === void 0 ? void 0 : projectSettings.sdk.embeddedWallets) === null || _w === void 0 ? void 0 : _w.chainConfigurations, decodedJwt.verifiedCredentials);
|
|
341
|
+
if (!targetTurnkeyWallet || !('id' in targetTurnkeyWallet)) {
|
|
204
342
|
throw new utils.DynamicError('User does not have a valid secure enclave wallet', errors.INVALID_WALLET_DATA);
|
|
205
343
|
}
|
|
206
|
-
const turnkeyAuthenticatorHandler = getEmbeddedWalletAuthHandler.getEmbeddedWalletAuthHandler(
|
|
344
|
+
const turnkeyAuthenticatorHandler = getEmbeddedWalletAuthHandler.getEmbeddedWalletAuthHandler(targetTurnkeyWallet === null || targetTurnkeyWallet === void 0 ? void 0 : targetTurnkeyWallet.walletConnector);
|
|
207
345
|
const targetTurnkeyWalletId = targetTurnkeyWallet.id;
|
|
208
346
|
const isSessionActive = turnkeyAuthenticatorHandler.isSessionActive();
|
|
209
347
|
if (isSessionActive) {
|
|
210
348
|
throw new utils.DynamicError('Session is active. No need to create a new one', errors.ACTIVE_SESSION);
|
|
211
349
|
}
|
|
212
|
-
const
|
|
350
|
+
const turnkeyAuthIframeContainerRef = createRootElement(constants.iframeContainerId);
|
|
351
|
+
const publicKey = yield turnkeyAuthenticatorHandler.initRecovery('email', turnkeyAuthIframeContainerRef.current, constants.iframeElementId, getEmbeddedWalletSessionExpiration.getEmbeddedWalletSessionExpiration((_x = projectSettings === null || projectSettings === void 0 ? void 0 : projectSettings.sdk.embeddedWallets) === null || _x === void 0 ? void 0 : _x.sessionKeyDuration));
|
|
213
352
|
if (!publicKey) {
|
|
214
353
|
throw new utils.DynamicError(errors.ERROR_SENDING_CODE);
|
|
215
354
|
}
|
|
@@ -223,17 +362,20 @@ const useSecureEnclaveEmbeddedWallet = () => {
|
|
|
223
362
|
turnkeyAuthenticatorHandler.recoveryUserId = response.turnkeyUserId;
|
|
224
363
|
return errors.CODE_SENT;
|
|
225
364
|
}), [
|
|
365
|
+
createRootElement,
|
|
226
366
|
environmentId,
|
|
227
367
|
onboardingOnlyJwt,
|
|
228
368
|
projectSettings,
|
|
229
|
-
|
|
230
|
-
wallet === null || wallet === void 0 ? void 0 : wallet.connector,
|
|
369
|
+
walletConnectorOptions,
|
|
231
370
|
]);
|
|
232
371
|
return {
|
|
233
372
|
createEmbeddedWallet,
|
|
234
373
|
createOrRestoreSession,
|
|
374
|
+
createPasskey,
|
|
375
|
+
getPasskeys,
|
|
235
376
|
isLoadingEmbeddedWallet,
|
|
236
377
|
isSessionActive,
|
|
378
|
+
revealEmbeddedWalletKey,
|
|
237
379
|
sendOneTimeCode,
|
|
238
380
|
userHasEmbeddedWallet,
|
|
239
381
|
};
|
|
@@ -1,19 +1,37 @@
|
|
|
1
1
|
import { ChainEnum } from '@dynamic-labs/sdk-api-core';
|
|
2
|
+
import { WebAuthnAttestation } from '@dynamic-labs/wallet-connector-core';
|
|
2
3
|
import { Wallet } from '../../../../shared';
|
|
3
4
|
/**
|
|
5
|
+
*
|
|
4
6
|
* @returns {
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
7
|
+
* createEmbeddedWallet, - creates Secure enclave embedded wallet according to the settings
|
|
8
|
+
* createOrRestoreSession, - creates or restores a embedded wallet session
|
|
9
|
+
* createPasskey, - creates a new passkey both for an existing wallet or a wallet to be created
|
|
10
|
+
* getPasskeys, - gets all passkeys for the user
|
|
11
|
+
* isLoadingEmbeddedWallet, - loading state of the embedded wallet
|
|
12
|
+
* isSessionActive, - checks if the embedded wallet session is active
|
|
13
|
+
* revealEmbeddedWalletKey - export the recovery phrase or private key of the embedded wallet
|
|
14
|
+
* sendOneTimeCode, - sends a one-time code to the user so they can create a session or add a new passkey
|
|
15
|
+
* userHasEmbeddedWallet, - checks if the user has an embedded wallet
|
|
8
16
|
* }
|
|
9
17
|
*/
|
|
10
18
|
export declare const useSecureEnclaveEmbeddedWallet: () => {
|
|
11
|
-
readonly createEmbeddedWallet: (
|
|
12
|
-
|
|
19
|
+
readonly createEmbeddedWallet: (chains?: ChainEnum[], options?: {
|
|
20
|
+
webAuthnAttestation: WebAuthnAttestation;
|
|
21
|
+
}) => Promise<Wallet | undefined>;
|
|
22
|
+
readonly createOrRestoreSession: (options: {
|
|
23
|
+
oneTimeCode: string;
|
|
24
|
+
} | undefined) => Promise<string>;
|
|
25
|
+
readonly createPasskey: (options: {
|
|
26
|
+
oneTimeCode: string;
|
|
27
|
+
} | undefined) => Promise<WebAuthnAttestation>;
|
|
28
|
+
readonly getPasskeys: () => Promise<import("@dynamic-labs/sdk-api-core").UserPasskey[]>;
|
|
13
29
|
readonly isLoadingEmbeddedWallet: boolean;
|
|
14
30
|
readonly isSessionActive: boolean;
|
|
15
|
-
readonly
|
|
16
|
-
|
|
17
|
-
|
|
31
|
+
readonly revealEmbeddedWalletKey: ({ type, htmlContainerId, }: {
|
|
32
|
+
type: 'recoveryPhrase' | 'privateKey';
|
|
33
|
+
htmlContainerId?: string;
|
|
34
|
+
}) => Promise<boolean>;
|
|
35
|
+
readonly sendOneTimeCode: () => Promise<string>;
|
|
18
36
|
readonly userHasEmbeddedWallet: () => boolean;
|
|
19
37
|
};
|