@dynamic-labs/sdk-react-core 2.1.0-alpha.1 → 2.1.0-alpha.10
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 +79 -0
- package/package.cjs +2 -2
- package/package.js +2 -2
- package/package.json +13 -14
- package/src/index.cjs +6 -2
- package/src/index.d.ts +2 -1
- package/src/index.js +3 -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/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/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 +0 -2
- package/src/lib/utils/constants/errors.js +1 -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 +1 -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 +14 -10
- package/src/lib/utils/hooks/useEmbeddedWallet/useEmbeddedWallet.d.ts +14 -2
- package/src/lib/utils/hooks/useEmbeddedWallet/useEmbeddedWallet.js +14 -10
- 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 +8 -8
- package/src/lib/utils/hooks/useEmbeddedWallet/useMPCEmbeddedWallet/useMPCEmbeddedWallet.d.ts +2 -2
- package/src/lib/utils/hooks/useEmbeddedWallet/useMPCEmbeddedWallet/useMPCEmbeddedWallet.js +8 -8
- package/src/lib/utils/hooks/useEmbeddedWallet/useSecureEnclaveEmbeddedWallet/useSecureEnclaveEmbeddedWallet.cjs +148 -46
- package/src/lib/utils/hooks/useEmbeddedWallet/useSecureEnclaveEmbeddedWallet/useSecureEnclaveEmbeddedWallet.d.ts +21 -8
- package/src/lib/utils/hooks/useEmbeddedWallet/useSecureEnclaveEmbeddedWallet/useSecureEnclaveEmbeddedWallet.js +152 -50
- 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/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/utils/turnkeyExport/turnkeyExport.cjs +2 -2
- package/src/lib/views/EmbeddedReveal/utils/turnkeyExport/turnkeyExport.js +2 -2
- 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
|
@@ -34,10 +34,10 @@ require('../../../context/AccountExistsContext/AccountExistsContext.cjs');
|
|
|
34
34
|
require('../../../context/UserWalletsContext/UserWalletsContext.cjs');
|
|
35
35
|
require('../../../context/VerificationContext/VerificationContext.cjs');
|
|
36
36
|
require('react-dom');
|
|
37
|
-
var
|
|
37
|
+
var createEmbeddedWalletRequest = require('../../../views/Passkey/utils/createEmbeddedWalletRequest/createEmbeddedWalletRequest.cjs');
|
|
38
38
|
var findPasskeyEmailWalletConnector = require('../../../views/Passkey/utils/findPasskeyEmailWalletConnector/findPasskeyEmailWalletConnector.cjs');
|
|
39
|
-
var createPregeneratedWallet = require('../../../views/Passkey/utils/createPregeneratedWallet/createPregeneratedWallet.cjs');
|
|
40
39
|
var smartWallet = require('../useWalletConnectors/utils/smartWallet/smartWallet.cjs');
|
|
40
|
+
var findPrimaryEmbeddedChain = require('../../../views/Passkey/utils/findPrimaryEmbeddedChain/findPrimaryEmbeddedChain.cjs');
|
|
41
41
|
require('../../../context/WalletContext/WalletContext.cjs');
|
|
42
42
|
require('../../../context/ThemeContext/ThemeContext.cjs');
|
|
43
43
|
require('@dynamic-labs/types');
|
|
@@ -82,34 +82,31 @@ var useInternalDynamicContext = require('../../../context/DynamicContext/useDyna
|
|
|
82
82
|
|
|
83
83
|
// This hook needs to be async that's why it's not using useMutation
|
|
84
84
|
const useCreateDynamicEmbeddedWalletMutation = () => {
|
|
85
|
-
var _a, _b
|
|
86
|
-
const { setPrimaryWalletId,
|
|
85
|
+
var _a, _b;
|
|
86
|
+
const { setPrimaryWalletId, setUser, user, setShowAuthFlow, projectSettings, } = useInternalDynamicContext.useInternalDynamicContext();
|
|
87
87
|
const [isLoading, setIsLoading] = React.useState(false);
|
|
88
88
|
const [error, setError] = React.useState();
|
|
89
89
|
const embeddedChainConfig = ((_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.chainConfigurations) || [];
|
|
90
|
-
const primaryEmbeddedChain =
|
|
91
|
-
? sdkApiCore.ChainEnum.Sol
|
|
92
|
-
: sdkApiCore.ChainEnum.Evm;
|
|
90
|
+
const primaryEmbeddedChain = findPrimaryEmbeddedChain.findPrimaryEmbeddedChain(projectSettings);
|
|
93
91
|
const embeddedChains = embeddedChainConfig
|
|
94
92
|
.filter((chain) => chain.enabled)
|
|
95
93
|
.map((c) => (c.name === 'SOL' ? sdkApiCore.ChainEnum.Sol : sdkApiCore.ChainEnum.Evm));
|
|
96
|
-
const createDynamicEmbeddedWalletMutation = React.useCallback((
|
|
97
|
-
var
|
|
94
|
+
const createDynamicEmbeddedWalletMutation = React.useCallback((_c) => _tslib.__awaiter(void 0, [_c], void 0, function* ({ authToken, decodedJwt, environmentId, walletConnectorOptions, withAuthenticator, options, chains, }) {
|
|
95
|
+
var _d, _e;
|
|
98
96
|
setIsLoading(true);
|
|
99
|
-
const createEmbeddedWalletMethodToUse = withAuthenticator
|
|
100
|
-
? createEmbeddedWalletWithPasskey.createEmbeddedWalletWithPasskey
|
|
101
|
-
: createPregeneratedWallet.createPregeneratedWallet;
|
|
102
97
|
try {
|
|
103
|
-
const { embeddedWalletVerifiedCredential, decodedJwt: updatedDecodedJwt, signersResponse, walletConnector, } = yield
|
|
98
|
+
const { embeddedWalletVerifiedCredential, decodedJwt: updatedDecodedJwt, signersResponse, walletConnector, } = yield createEmbeddedWalletRequest.createEmbeddedWalletRequest({
|
|
104
99
|
authToken,
|
|
105
|
-
chains: embeddedChains,
|
|
100
|
+
chains: chains !== null && chains !== void 0 ? chains : embeddedChains,
|
|
106
101
|
environmentId,
|
|
107
102
|
user: user !== null && user !== void 0 ? user : createUserProfile.createUserProfile(decodedJwt),
|
|
108
103
|
walletConnector: findPasskeyEmailWalletConnector.findPasskeyEmailWalletConnector(walletConnectorOptions, primaryEmbeddedChain),
|
|
104
|
+
webAuthnAttestation: options === null || options === void 0 ? void 0 : options.webAuthnAttestation,
|
|
105
|
+
withAuthenticator,
|
|
109
106
|
});
|
|
110
|
-
const turnkeyVerifiedCredentials = (
|
|
107
|
+
const turnkeyVerifiedCredentials = (_d = updatedDecodedJwt === null || updatedDecodedJwt === void 0 ? void 0 : updatedDecodedJwt.verifiedCredentials) === null || _d === void 0 ? void 0 : _d.find(({ walletName }) => walletName === null || walletName === void 0 ? void 0 : walletName.startsWith('turnkey'));
|
|
111
108
|
/** It's not authenticated if it's a turnkey wallet that still hasn't created a passkey */
|
|
112
|
-
const authenticated = Boolean((
|
|
109
|
+
const authenticated = Boolean((_e = turnkeyVerifiedCredentials === null || turnkeyVerifiedCredentials === void 0 ? void 0 : turnkeyVerifiedCredentials.walletProperties) === null || _e === void 0 ? void 0 : _e.isAuthenticatorAttached);
|
|
113
110
|
const passkeyWallet = {
|
|
114
111
|
address: (yield walletConnector.getAddress()) || '',
|
|
115
112
|
authenticated,
|
|
@@ -132,7 +129,7 @@ const useCreateDynamicEmbeddedWalletMutation = () => {
|
|
|
132
129
|
}
|
|
133
130
|
setUser(updateJWTAndCreateUserProfile.updateJWTAndCreateUserProfile(signersResponse.jwt, signersResponse.minifiedJwt));
|
|
134
131
|
setShowAuthFlow(false, { performMultiWalletChecks: false });
|
|
135
|
-
dynamicEvents.dynamicEvents.emit('embeddedWalletCreated', passkeyWallet, turnkeyVerifiedCredentials);
|
|
132
|
+
dynamicEvents.dynamicEvents.emit('embeddedWalletCreated', passkeyWallet, turnkeyVerifiedCredentials, signersResponse.jwt);
|
|
136
133
|
}
|
|
137
134
|
catch (err) {
|
|
138
135
|
setError(err);
|
|
@@ -142,7 +139,14 @@ const useCreateDynamicEmbeddedWalletMutation = () => {
|
|
|
142
139
|
finally {
|
|
143
140
|
setIsLoading(false);
|
|
144
141
|
}
|
|
145
|
-
}), [
|
|
142
|
+
}), [
|
|
143
|
+
embeddedChains,
|
|
144
|
+
primaryEmbeddedChain,
|
|
145
|
+
setPrimaryWalletId,
|
|
146
|
+
setShowAuthFlow,
|
|
147
|
+
setUser,
|
|
148
|
+
user,
|
|
149
|
+
]);
|
|
146
150
|
return {
|
|
147
151
|
createDynamicEmbeddedWalletMutation,
|
|
148
152
|
error,
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import { DynamicJwt } from '@dynamic-labs/sdk-api-core';
|
|
1
|
+
import { DynamicJwt, ChainEnum } from '@dynamic-labs/sdk-api-core';
|
|
2
|
+
import { WebAuthnAttestation } from '@dynamic-labs/wallet-connector-core';
|
|
2
3
|
import { WalletOption } from '../../../shared';
|
|
3
4
|
type MutationProps = {
|
|
4
5
|
authToken: string | undefined;
|
|
@@ -6,9 +7,13 @@ type MutationProps = {
|
|
|
6
7
|
walletConnectorOptions: WalletOption[];
|
|
7
8
|
decodedJwt: DynamicJwt;
|
|
8
9
|
withAuthenticator: boolean;
|
|
10
|
+
options?: {
|
|
11
|
+
webAuthnAttestation: WebAuthnAttestation;
|
|
12
|
+
};
|
|
13
|
+
chains?: ChainEnum[];
|
|
9
14
|
};
|
|
10
15
|
export declare const useCreateDynamicEmbeddedWalletMutation: () => {
|
|
11
|
-
createDynamicEmbeddedWalletMutation: ({ authToken, decodedJwt, environmentId, walletConnectorOptions, withAuthenticator, }: MutationProps) => Promise<void>;
|
|
16
|
+
createDynamicEmbeddedWalletMutation: ({ authToken, decodedJwt, environmentId, walletConnectorOptions, withAuthenticator, options, chains, }: MutationProps) => Promise<void>;
|
|
12
17
|
error: unknown;
|
|
13
18
|
isLoading: boolean;
|
|
14
19
|
};
|
|
@@ -30,10 +30,10 @@ import '../../../context/AccountExistsContext/AccountExistsContext.js';
|
|
|
30
30
|
import '../../../context/UserWalletsContext/UserWalletsContext.js';
|
|
31
31
|
import '../../../context/VerificationContext/VerificationContext.js';
|
|
32
32
|
import 'react-dom';
|
|
33
|
-
import {
|
|
33
|
+
import { createEmbeddedWalletRequest } from '../../../views/Passkey/utils/createEmbeddedWalletRequest/createEmbeddedWalletRequest.js';
|
|
34
34
|
import { findPasskeyEmailWalletConnector } from '../../../views/Passkey/utils/findPasskeyEmailWalletConnector/findPasskeyEmailWalletConnector.js';
|
|
35
|
-
import { createPregeneratedWallet } from '../../../views/Passkey/utils/createPregeneratedWallet/createPregeneratedWallet.js';
|
|
36
35
|
import { findSmartWallet, initializeSmartWallet } from '../useWalletConnectors/utils/smartWallet/smartWallet.js';
|
|
36
|
+
import { findPrimaryEmbeddedChain } from '../../../views/Passkey/utils/findPrimaryEmbeddedChain/findPrimaryEmbeddedChain.js';
|
|
37
37
|
import '../../../context/WalletContext/WalletContext.js';
|
|
38
38
|
import '../../../context/ThemeContext/ThemeContext.js';
|
|
39
39
|
import '@dynamic-labs/types';
|
|
@@ -78,34 +78,31 @@ import { useInternalDynamicContext } from '../../../context/DynamicContext/useDy
|
|
|
78
78
|
|
|
79
79
|
// This hook needs to be async that's why it's not using useMutation
|
|
80
80
|
const useCreateDynamicEmbeddedWalletMutation = () => {
|
|
81
|
-
var _a, _b
|
|
82
|
-
const { setPrimaryWalletId,
|
|
81
|
+
var _a, _b;
|
|
82
|
+
const { setPrimaryWalletId, setUser, user, setShowAuthFlow, projectSettings, } = useInternalDynamicContext();
|
|
83
83
|
const [isLoading, setIsLoading] = useState(false);
|
|
84
84
|
const [error, setError] = useState();
|
|
85
85
|
const embeddedChainConfig = ((_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.chainConfigurations) || [];
|
|
86
|
-
const primaryEmbeddedChain = (
|
|
87
|
-
? ChainEnum.Sol
|
|
88
|
-
: ChainEnum.Evm;
|
|
86
|
+
const primaryEmbeddedChain = findPrimaryEmbeddedChain(projectSettings);
|
|
89
87
|
const embeddedChains = embeddedChainConfig
|
|
90
88
|
.filter((chain) => chain.enabled)
|
|
91
89
|
.map((c) => (c.name === 'SOL' ? ChainEnum.Sol : ChainEnum.Evm));
|
|
92
|
-
const createDynamicEmbeddedWalletMutation = useCallback((
|
|
93
|
-
var
|
|
90
|
+
const createDynamicEmbeddedWalletMutation = useCallback((_c) => __awaiter(void 0, [_c], void 0, function* ({ authToken, decodedJwt, environmentId, walletConnectorOptions, withAuthenticator, options, chains, }) {
|
|
91
|
+
var _d, _e;
|
|
94
92
|
setIsLoading(true);
|
|
95
|
-
const createEmbeddedWalletMethodToUse = withAuthenticator
|
|
96
|
-
? createEmbeddedWalletWithPasskey
|
|
97
|
-
: createPregeneratedWallet;
|
|
98
93
|
try {
|
|
99
|
-
const { embeddedWalletVerifiedCredential, decodedJwt: updatedDecodedJwt, signersResponse, walletConnector, } = yield
|
|
94
|
+
const { embeddedWalletVerifiedCredential, decodedJwt: updatedDecodedJwt, signersResponse, walletConnector, } = yield createEmbeddedWalletRequest({
|
|
100
95
|
authToken,
|
|
101
|
-
chains: embeddedChains,
|
|
96
|
+
chains: chains !== null && chains !== void 0 ? chains : embeddedChains,
|
|
102
97
|
environmentId,
|
|
103
98
|
user: user !== null && user !== void 0 ? user : createUserProfile(decodedJwt),
|
|
104
99
|
walletConnector: findPasskeyEmailWalletConnector(walletConnectorOptions, primaryEmbeddedChain),
|
|
100
|
+
webAuthnAttestation: options === null || options === void 0 ? void 0 : options.webAuthnAttestation,
|
|
101
|
+
withAuthenticator,
|
|
105
102
|
});
|
|
106
|
-
const turnkeyVerifiedCredentials = (
|
|
103
|
+
const turnkeyVerifiedCredentials = (_d = updatedDecodedJwt === null || updatedDecodedJwt === void 0 ? void 0 : updatedDecodedJwt.verifiedCredentials) === null || _d === void 0 ? void 0 : _d.find(({ walletName }) => walletName === null || walletName === void 0 ? void 0 : walletName.startsWith('turnkey'));
|
|
107
104
|
/** It's not authenticated if it's a turnkey wallet that still hasn't created a passkey */
|
|
108
|
-
const authenticated = Boolean((
|
|
105
|
+
const authenticated = Boolean((_e = turnkeyVerifiedCredentials === null || turnkeyVerifiedCredentials === void 0 ? void 0 : turnkeyVerifiedCredentials.walletProperties) === null || _e === void 0 ? void 0 : _e.isAuthenticatorAttached);
|
|
109
106
|
const passkeyWallet = {
|
|
110
107
|
address: (yield walletConnector.getAddress()) || '',
|
|
111
108
|
authenticated,
|
|
@@ -128,7 +125,7 @@ const useCreateDynamicEmbeddedWalletMutation = () => {
|
|
|
128
125
|
}
|
|
129
126
|
setUser(updateJWTAndCreateUserProfile(signersResponse.jwt, signersResponse.minifiedJwt));
|
|
130
127
|
setShowAuthFlow(false, { performMultiWalletChecks: false });
|
|
131
|
-
dynamicEvents.emit('embeddedWalletCreated', passkeyWallet, turnkeyVerifiedCredentials);
|
|
128
|
+
dynamicEvents.emit('embeddedWalletCreated', passkeyWallet, turnkeyVerifiedCredentials, signersResponse.jwt);
|
|
132
129
|
}
|
|
133
130
|
catch (err) {
|
|
134
131
|
setError(err);
|
|
@@ -138,7 +135,14 @@ const useCreateDynamicEmbeddedWalletMutation = () => {
|
|
|
138
135
|
finally {
|
|
139
136
|
setIsLoading(false);
|
|
140
137
|
}
|
|
141
|
-
}), [
|
|
138
|
+
}), [
|
|
139
|
+
embeddedChains,
|
|
140
|
+
primaryEmbeddedChain,
|
|
141
|
+
setPrimaryWalletId,
|
|
142
|
+
setShowAuthFlow,
|
|
143
|
+
setUser,
|
|
144
|
+
user,
|
|
145
|
+
]);
|
|
142
146
|
return {
|
|
143
147
|
createDynamicEmbeddedWalletMutation,
|
|
144
148
|
error,
|
|
@@ -97,6 +97,14 @@ const useDynamicLayoutData = ({ view, authMode, }) => {
|
|
|
97
97
|
copykey: 'dyn_login.title.wallet_only',
|
|
98
98
|
heading: t('dyn_login.title.wallet_only'),
|
|
99
99
|
},
|
|
100
|
+
'merge-user-accounts': {
|
|
101
|
+
copykey: 'dyn_merge_user_accounts.same_wallet.title',
|
|
102
|
+
heading: t('dyn_merge_user_accounts.same_wallet.title'),
|
|
103
|
+
},
|
|
104
|
+
'merge-user-accounts-conflicts': {
|
|
105
|
+
copykey: 'dyn_merge_user_accounts_conflicts.title',
|
|
106
|
+
heading: t('dyn_merge_user_accounts_conflicts.title'),
|
|
107
|
+
},
|
|
100
108
|
'mfa-choose-device': {
|
|
101
109
|
copykey: 'dyn_mfa.choose_device_view.title',
|
|
102
110
|
heading: t('dyn_mfa.choose_device_view.title'),
|
|
@@ -93,6 +93,14 @@ const useDynamicLayoutData = ({ view, authMode, }) => {
|
|
|
93
93
|
copykey: 'dyn_login.title.wallet_only',
|
|
94
94
|
heading: t('dyn_login.title.wallet_only'),
|
|
95
95
|
},
|
|
96
|
+
'merge-user-accounts': {
|
|
97
|
+
copykey: 'dyn_merge_user_accounts.same_wallet.title',
|
|
98
|
+
heading: t('dyn_merge_user_accounts.same_wallet.title'),
|
|
99
|
+
},
|
|
100
|
+
'merge-user-accounts-conflicts': {
|
|
101
|
+
copykey: 'dyn_merge_user_accounts_conflicts.title',
|
|
102
|
+
heading: t('dyn_merge_user_accounts_conflicts.title'),
|
|
103
|
+
},
|
|
96
104
|
'mfa-choose-device': {
|
|
97
105
|
copykey: 'dyn_mfa.choose_device_view.title',
|
|
98
106
|
heading: t('dyn_mfa.choose_device_view.title'),
|
|
@@ -77,16 +77,16 @@ var useInternalDynamicContext = require('../../../context/DynamicContext/useDyna
|
|
|
77
77
|
// This hook can be used to get all of the user's scopes (nft/token gates)
|
|
78
78
|
// and check if the user has a specific scopes with some logic AND/OR (nft/token gate)
|
|
79
79
|
const useDynamicScopes = () => {
|
|
80
|
-
const {
|
|
80
|
+
const { user } = useInternalDynamicContext.useInternalDynamicContext();
|
|
81
81
|
const userScopes = React.useMemo(() => {
|
|
82
|
-
const { scope } =
|
|
82
|
+
const { scope } = user || {};
|
|
83
83
|
if (!scope)
|
|
84
84
|
return [];
|
|
85
85
|
// We need to split the scopes string into an array of scopes
|
|
86
86
|
// because the scopes string is a space separated string of scopes
|
|
87
87
|
// e.g. '"scope": "customerservice marketing tech"'
|
|
88
88
|
return scope.split(' ');
|
|
89
|
-
}, [
|
|
89
|
+
}, [user]);
|
|
90
90
|
// If customer will set scopes to an empty string it will return false
|
|
91
91
|
const userHasScopes = (scopes, logicOperator = 'OR') => {
|
|
92
92
|
if (!scopes.length)
|
|
@@ -73,16 +73,16 @@ import { useInternalDynamicContext } from '../../../context/DynamicContext/useDy
|
|
|
73
73
|
// This hook can be used to get all of the user's scopes (nft/token gates)
|
|
74
74
|
// and check if the user has a specific scopes with some logic AND/OR (nft/token gate)
|
|
75
75
|
const useDynamicScopes = () => {
|
|
76
|
-
const {
|
|
76
|
+
const { user } = useInternalDynamicContext();
|
|
77
77
|
const userScopes = useMemo(() => {
|
|
78
|
-
const { scope } =
|
|
78
|
+
const { scope } = user || {};
|
|
79
79
|
if (!scope)
|
|
80
80
|
return [];
|
|
81
81
|
// We need to split the scopes string into an array of scopes
|
|
82
82
|
// because the scopes string is a space separated string of scopes
|
|
83
83
|
// e.g. '"scope": "customerservice marketing tech"'
|
|
84
84
|
return scope.split(' ');
|
|
85
|
-
}, [
|
|
85
|
+
}, [user]);
|
|
86
86
|
// If customer will set scopes to an empty string it will return false
|
|
87
87
|
const userHasScopes = (scopes, logicOperator = 'OR') => {
|
|
88
88
|
if (!scopes.length)
|
|
@@ -5,26 +5,41 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
5
5
|
|
|
6
6
|
var React = require('react');
|
|
7
7
|
|
|
8
|
-
const useElementById = (
|
|
9
|
-
const
|
|
10
|
-
|
|
11
|
-
|
|
8
|
+
const useElementById = () => {
|
|
9
|
+
const targetElement = React.useRef(null);
|
|
10
|
+
const createRootElement = (elementId = 'dynamic-modal', parentElementId) => {
|
|
11
|
+
if (typeof window === 'undefined')
|
|
12
|
+
return targetElement;
|
|
13
|
+
const isElementCreated = window.document.getElementById(elementId);
|
|
14
|
+
if (isElementCreated) {
|
|
15
|
+
targetElement.current = isElementCreated;
|
|
16
|
+
return targetElement;
|
|
17
|
+
}
|
|
18
|
+
const parentElement = parentElementId
|
|
19
|
+
? window.document.getElementById(parentElementId)
|
|
20
|
+
: undefined;
|
|
12
21
|
// creates div and attaches it to the body
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
22
|
+
targetElement.current = window.document.createElement('div');
|
|
23
|
+
targetElement.current.setAttribute('id', elementId);
|
|
24
|
+
targetElement.current.setAttribute('class', elementId);
|
|
25
|
+
targetElement.current.setAttribute('data-testid', elementId);
|
|
26
|
+
/**
|
|
27
|
+
* Setting the pointer-events to auto is necessary to allow the user to interact with the modal
|
|
28
|
+
* when other packages that use a modal set the pointer-events to none on the body element.
|
|
29
|
+
* For example: https://reservoir.tools/ use chakra-ui and sets the pointer-events to none on the body element.
|
|
30
|
+
*/
|
|
31
|
+
targetElement.current.style.pointerEvents = 'auto';
|
|
32
|
+
if (parentElement) {
|
|
33
|
+
parentElement.appendChild(targetElement.current);
|
|
34
|
+
}
|
|
35
|
+
else {
|
|
36
|
+
window.document.body.appendChild(targetElement.current);
|
|
25
37
|
}
|
|
26
|
-
|
|
27
|
-
|
|
38
|
+
return targetElement;
|
|
39
|
+
};
|
|
40
|
+
return {
|
|
41
|
+
createRootElement,
|
|
42
|
+
};
|
|
28
43
|
};
|
|
29
44
|
|
|
30
45
|
exports.useElementById = useElementById;
|
|
@@ -1,2 +1,4 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
export declare const useElementById: (
|
|
2
|
+
export declare const useElementById: () => {
|
|
3
|
+
createRootElement: (elementId?: string, parentElementId?: string) => React.MutableRefObject<HTMLElement>;
|
|
4
|
+
};
|
|
@@ -1,26 +1,41 @@
|
|
|
1
1
|
'use client'
|
|
2
2
|
import { useRef } from 'react';
|
|
3
3
|
|
|
4
|
-
const useElementById = (
|
|
5
|
-
const
|
|
6
|
-
|
|
7
|
-
|
|
4
|
+
const useElementById = () => {
|
|
5
|
+
const targetElement = useRef(null);
|
|
6
|
+
const createRootElement = (elementId = 'dynamic-modal', parentElementId) => {
|
|
7
|
+
if (typeof window === 'undefined')
|
|
8
|
+
return targetElement;
|
|
9
|
+
const isElementCreated = window.document.getElementById(elementId);
|
|
10
|
+
if (isElementCreated) {
|
|
11
|
+
targetElement.current = isElementCreated;
|
|
12
|
+
return targetElement;
|
|
13
|
+
}
|
|
14
|
+
const parentElement = parentElementId
|
|
15
|
+
? window.document.getElementById(parentElementId)
|
|
16
|
+
: undefined;
|
|
8
17
|
// creates div and attaches it to the body
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
18
|
+
targetElement.current = window.document.createElement('div');
|
|
19
|
+
targetElement.current.setAttribute('id', elementId);
|
|
20
|
+
targetElement.current.setAttribute('class', elementId);
|
|
21
|
+
targetElement.current.setAttribute('data-testid', elementId);
|
|
22
|
+
/**
|
|
23
|
+
* Setting the pointer-events to auto is necessary to allow the user to interact with the modal
|
|
24
|
+
* when other packages that use a modal set the pointer-events to none on the body element.
|
|
25
|
+
* For example: https://reservoir.tools/ use chakra-ui and sets the pointer-events to none on the body element.
|
|
26
|
+
*/
|
|
27
|
+
targetElement.current.style.pointerEvents = 'auto';
|
|
28
|
+
if (parentElement) {
|
|
29
|
+
parentElement.appendChild(targetElement.current);
|
|
30
|
+
}
|
|
31
|
+
else {
|
|
32
|
+
window.document.body.appendChild(targetElement.current);
|
|
21
33
|
}
|
|
22
|
-
|
|
23
|
-
|
|
34
|
+
return targetElement;
|
|
35
|
+
};
|
|
36
|
+
return {
|
|
37
|
+
createRootElement,
|
|
38
|
+
};
|
|
24
39
|
};
|
|
25
40
|
|
|
26
41
|
export { useElementById };
|
|
@@ -35,7 +35,6 @@ require('../../../context/UserWalletsContext/UserWalletsContext.cjs');
|
|
|
35
35
|
require('../../../context/VerificationContext/VerificationContext.cjs');
|
|
36
36
|
require('react-dom');
|
|
37
37
|
var WalletContext = require('../../../context/WalletContext/WalletContext.cjs');
|
|
38
|
-
var useEmbeddedWalletPassword = require('../useEmbeddedWalletPassword/useEmbeddedWalletPassword.cjs');
|
|
39
38
|
var useSecureEnclaveEmbeddedWallet = require('./useSecureEnclaveEmbeddedWallet/useSecureEnclaveEmbeddedWallet.cjs');
|
|
40
39
|
var useMPCEmbeddedWallet = require('./useMPCEmbeddedWallet/useMPCEmbeddedWallet.cjs');
|
|
41
40
|
require('../../../context/ThemeContext/ThemeContext.cjs');
|
|
@@ -90,27 +89,32 @@ var useInternalDynamicContext = require('../../../context/DynamicContext/useDyna
|
|
|
90
89
|
*/
|
|
91
90
|
const useEmbeddedWallet = () => {
|
|
92
91
|
const { onboardingOnlyJwt } = useInternalDynamicContext.useInternalDynamicContext();
|
|
93
|
-
const {
|
|
94
|
-
const { createEmbeddedWallet:
|
|
95
|
-
const { createEmbeddedWallet: createTurnkeyEmbeddedWallet } = useSecureEnclaveEmbeddedWallet.useSecureEnclaveEmbeddedWallet();
|
|
92
|
+
const { createEmbeddedWallet: createCoinbaseMPCWallet, canCreateMPCWallet, createPassword, } = useMPCEmbeddedWallet.useMPCEmbeddedWallet();
|
|
93
|
+
const { createEmbeddedWallet: createTurnkeyEmbeddedWallet, createOrRestoreSession, createPasskey, getPasskeys, isSessionActive, sendOneTimeCode, } = useSecureEnclaveEmbeddedWallet.useSecureEnclaveEmbeddedWallet();
|
|
96
94
|
const { isLoadingEmbeddedWallet } = WalletContext.useWalletContext();
|
|
97
95
|
const userHasEmbeddedWallet = () => hasEmbeddedWallet.hasEmbeddedWallet(getAuthToken.getAuthToken() || onboardingOnlyJwt);
|
|
98
96
|
/**
|
|
99
|
-
*
|
|
97
|
+
* Creates Dynamic embedded wallet according to the settings
|
|
98
|
+
* @param chains - array of chains to create the wallet for
|
|
99
|
+
* @param options - options for the wallet creation
|
|
100
100
|
*/
|
|
101
|
-
const
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
const wallet = yield createCoinbaseMPCWallet(chain);
|
|
101
|
+
const createEmbeddedWallet = React.useCallback((chains, options) => _tslib.__awaiter(void 0, void 0, void 0, function* () {
|
|
102
|
+
if (yield canCreateMPCWallet(chains)) {
|
|
103
|
+
const wallet = yield createCoinbaseMPCWallet(chains);
|
|
105
104
|
return wallet;
|
|
106
105
|
}
|
|
107
|
-
const wallet = yield createTurnkeyEmbeddedWallet(
|
|
106
|
+
const wallet = yield createTurnkeyEmbeddedWallet(chains, options);
|
|
108
107
|
return wallet;
|
|
109
108
|
}), [canCreateMPCWallet, createCoinbaseMPCWallet, createTurnkeyEmbeddedWallet]);
|
|
110
109
|
return {
|
|
111
110
|
createEmbeddedWallet,
|
|
111
|
+
createOrRestoreSession,
|
|
112
|
+
createPasskey,
|
|
112
113
|
createPassword,
|
|
114
|
+
getPasskeys,
|
|
113
115
|
isLoadingEmbeddedWallet,
|
|
116
|
+
isSessionActive,
|
|
117
|
+
sendOneTimeCode,
|
|
114
118
|
userHasEmbeddedWallet,
|
|
115
119
|
};
|
|
116
120
|
};
|
|
@@ -1,4 +1,5 @@
|
|
|
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
|
/**
|
|
4
5
|
* @returns {
|
|
@@ -9,8 +10,19 @@ import { Wallet } from '../../../shared';
|
|
|
9
10
|
* }
|
|
10
11
|
*/
|
|
11
12
|
export declare const useEmbeddedWallet: () => {
|
|
12
|
-
readonly createEmbeddedWallet: (
|
|
13
|
-
|
|
13
|
+
readonly createEmbeddedWallet: (chains?: ChainEnum[], options?: {
|
|
14
|
+
webAuthnAttestation: WebAuthnAttestation;
|
|
15
|
+
}) => Promise<Wallet | undefined>;
|
|
16
|
+
readonly createOrRestoreSession: ({ oneTimeCode }: {
|
|
17
|
+
oneTimeCode?: string | undefined;
|
|
18
|
+
}) => Promise<string>;
|
|
19
|
+
readonly createPasskey: ({ oneTimeCode, }: {
|
|
20
|
+
oneTimeCode?: string | undefined;
|
|
21
|
+
}) => Promise<WebAuthnAttestation>;
|
|
22
|
+
readonly createPassword: (showIntro?: boolean | undefined) => Promise<string>;
|
|
23
|
+
readonly getPasskeys: () => Promise<import("@dynamic-labs/sdk-api-core").UserPasskey[]>;
|
|
14
24
|
readonly isLoadingEmbeddedWallet: boolean;
|
|
25
|
+
readonly isSessionActive: boolean;
|
|
26
|
+
readonly sendOneTimeCode: () => Promise<string>;
|
|
15
27
|
readonly userHasEmbeddedWallet: () => boolean;
|
|
16
28
|
};
|
|
@@ -31,7 +31,6 @@ import '../../../context/UserWalletsContext/UserWalletsContext.js';
|
|
|
31
31
|
import '../../../context/VerificationContext/VerificationContext.js';
|
|
32
32
|
import 'react-dom';
|
|
33
33
|
import { useWalletContext } from '../../../context/WalletContext/WalletContext.js';
|
|
34
|
-
import { useEmbeddedWalletPassword } from '../useEmbeddedWalletPassword/useEmbeddedWalletPassword.js';
|
|
35
34
|
import { useSecureEnclaveEmbeddedWallet } from './useSecureEnclaveEmbeddedWallet/useSecureEnclaveEmbeddedWallet.js';
|
|
36
35
|
import { useMPCEmbeddedWallet } from './useMPCEmbeddedWallet/useMPCEmbeddedWallet.js';
|
|
37
36
|
import '../../../context/ThemeContext/ThemeContext.js';
|
|
@@ -86,27 +85,32 @@ import { useInternalDynamicContext } from '../../../context/DynamicContext/useDy
|
|
|
86
85
|
*/
|
|
87
86
|
const useEmbeddedWallet = () => {
|
|
88
87
|
const { onboardingOnlyJwt } = useInternalDynamicContext();
|
|
89
|
-
const {
|
|
90
|
-
const { createEmbeddedWallet:
|
|
91
|
-
const { createEmbeddedWallet: createTurnkeyEmbeddedWallet } = useSecureEnclaveEmbeddedWallet();
|
|
88
|
+
const { createEmbeddedWallet: createCoinbaseMPCWallet, canCreateMPCWallet, createPassword, } = useMPCEmbeddedWallet();
|
|
89
|
+
const { createEmbeddedWallet: createTurnkeyEmbeddedWallet, createOrRestoreSession, createPasskey, getPasskeys, isSessionActive, sendOneTimeCode, } = useSecureEnclaveEmbeddedWallet();
|
|
92
90
|
const { isLoadingEmbeddedWallet } = useWalletContext();
|
|
93
91
|
const userHasEmbeddedWallet = () => hasEmbeddedWallet(getAuthToken() || onboardingOnlyJwt);
|
|
94
92
|
/**
|
|
95
|
-
*
|
|
93
|
+
* Creates Dynamic embedded wallet according to the settings
|
|
94
|
+
* @param chains - array of chains to create the wallet for
|
|
95
|
+
* @param options - options for the wallet creation
|
|
96
96
|
*/
|
|
97
|
-
const
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
const wallet = yield createCoinbaseMPCWallet(chain);
|
|
97
|
+
const createEmbeddedWallet = useCallback((chains, options) => __awaiter(void 0, void 0, void 0, function* () {
|
|
98
|
+
if (yield canCreateMPCWallet(chains)) {
|
|
99
|
+
const wallet = yield createCoinbaseMPCWallet(chains);
|
|
101
100
|
return wallet;
|
|
102
101
|
}
|
|
103
|
-
const wallet = yield createTurnkeyEmbeddedWallet(
|
|
102
|
+
const wallet = yield createTurnkeyEmbeddedWallet(chains, options);
|
|
104
103
|
return wallet;
|
|
105
104
|
}), [canCreateMPCWallet, createCoinbaseMPCWallet, createTurnkeyEmbeddedWallet]);
|
|
106
105
|
return {
|
|
107
106
|
createEmbeddedWallet,
|
|
107
|
+
createOrRestoreSession,
|
|
108
|
+
createPasskey,
|
|
108
109
|
createPassword,
|
|
110
|
+
getPasskeys,
|
|
109
111
|
isLoadingEmbeddedWallet,
|
|
112
|
+
isSessionActive,
|
|
113
|
+
sendOneTimeCode,
|
|
110
114
|
userHasEmbeddedWallet,
|
|
111
115
|
};
|
|
112
116
|
};
|
package/src/lib/utils/hooks/useEmbeddedWallet/useMPCEmbeddedWallet/useCoinbaseMPC/useCoinbaseMPC.cjs
CHANGED
|
@@ -128,7 +128,7 @@ const useCoinbaseMPC = () => {
|
|
|
128
128
|
setPrimaryWalletId(newSelectedCredentialWallet.id);
|
|
129
129
|
setUser(user);
|
|
130
130
|
connector.setVerifiedCredentials(user.verifiedCredentials);
|
|
131
|
-
return newSelectedCredentialWallet;
|
|
131
|
+
return { authToken: response === null || response === void 0 ? void 0 : response.jwt, newSelectedCredentialWallet };
|
|
132
132
|
}), [
|
|
133
133
|
appName,
|
|
134
134
|
consumeNonce,
|
|
@@ -147,7 +147,7 @@ const useCoinbaseMPC = () => {
|
|
|
147
147
|
: sdkApiCore.PasswordSourceTypeEnum.Dynamic;
|
|
148
148
|
try {
|
|
149
149
|
const backupCode = yield connector.generateWallet(source, initialWalletPassword);
|
|
150
|
-
const
|
|
150
|
+
const { authToken, newSelectedCredentialWallet } = yield linkCoinbaseMPCWallet({
|
|
151
151
|
backupCode,
|
|
152
152
|
connector,
|
|
153
153
|
jwt,
|
|
@@ -160,9 +160,9 @@ const useCoinbaseMPC = () => {
|
|
|
160
160
|
chain: (connector === null || connector === void 0 ? void 0 : connector.connectedChain) || '',
|
|
161
161
|
connected: true,
|
|
162
162
|
connector,
|
|
163
|
-
id:
|
|
163
|
+
id: newSelectedCredentialWallet.id,
|
|
164
164
|
};
|
|
165
|
-
dynamicEvents.dynamicEvents.emit('embeddedWalletCreated', coinbaseMPCWallet,
|
|
165
|
+
dynamicEvents.dynamicEvents.emit('embeddedWalletCreated', coinbaseMPCWallet, newSelectedCredentialWallet, authToken);
|
|
166
166
|
return coinbaseMPCWallet;
|
|
167
167
|
}
|
|
168
168
|
catch (error) {
|
|
@@ -175,7 +175,7 @@ const useCoinbaseMPC = () => {
|
|
|
175
175
|
}
|
|
176
176
|
return undefined;
|
|
177
177
|
}), [linkCoinbaseMPCWallet, handleLogOut, setError]);
|
|
178
|
-
const createCoinbaseMPCWallet = React.useCallback((jwt_1, decodedJwt_1, ...args_1) => _tslib.__awaiter(void 0, [jwt_1, decodedJwt_1, ...args_1], void 0, function* (jwt, decodedJwt,
|
|
178
|
+
const createCoinbaseMPCWallet = React.useCallback((jwt_1, decodedJwt_1, ...args_1) => _tslib.__awaiter(void 0, [jwt_1, decodedJwt_1, ...args_1], void 0, function* (jwt, decodedJwt, chains = [sdkApiCore.ChainEnum.Evm], password) {
|
|
179
179
|
var _b;
|
|
180
180
|
const connector = (_b = findCoinbaseMPCWallet.findCoinbaseMPCWallet(walletConnectorOptions)) === null || _b === void 0 ? void 0 : _b.walletConnector;
|
|
181
181
|
if (!connector || !walletConnectorCore.isCoinbaseMpcWalletConnector(connector)) {
|
|
@@ -193,7 +193,7 @@ const useCoinbaseMPC = () => {
|
|
|
193
193
|
if (fetchAuthToken) {
|
|
194
194
|
connector.setAuthTokenFetcher(fetchAuthToken);
|
|
195
195
|
}
|
|
196
|
-
const embeddedWalletVerifiedCredential = findEmbeddedWalletFromVerifiedCredentials.findEmbeddedWalletFromVerifiedCredentials(jwt,
|
|
196
|
+
const embeddedWalletVerifiedCredential = findEmbeddedWalletFromVerifiedCredentials.findEmbeddedWalletFromVerifiedCredentials(jwt, chains);
|
|
197
197
|
// if user already has embedded wallet, set it as primary wallet and return
|
|
198
198
|
if (embeddedWalletVerifiedCredential) {
|
|
199
199
|
return returnExistingCoinbaseMPCWallet(connector, decodedJwt, embeddedWalletVerifiedCredential);
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ChainEnum, DynamicJwt } from '@dynamic-labs/sdk-api-core';
|
|
2
2
|
import { Wallet } from '../../../../../shared';
|
|
3
3
|
export declare const useCoinbaseMPC: () => {
|
|
4
|
-
createCoinbaseMPCWallet: (jwt: string, decodedJwt: DynamicJwt,
|
|
4
|
+
createCoinbaseMPCWallet: (jwt: string, decodedJwt: DynamicJwt, chains?: ChainEnum[], password?: string) => Promise<Wallet | undefined>;
|
|
5
5
|
};
|