@dynamic-labs/sdk-react-core 2.1.0-alpha.2 → 2.1.0-alpha.4

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.
Files changed (113) hide show
  1. package/CHANGELOG.md +26 -0
  2. package/package.cjs +2 -2
  3. package/package.js +2 -2
  4. package/package.json +13 -14
  5. package/src/index.cjs +0 -2
  6. package/src/index.d.ts +1 -1
  7. package/src/index.js +0 -1
  8. package/src/lib/Main.cjs +5 -0
  9. package/src/lib/Main.js +5 -0
  10. package/src/lib/components/Alert/Alert.cjs +2 -2
  11. package/src/lib/components/Alert/Alert.js +2 -2
  12. package/src/lib/components/Alert/Alert.types.d.ts +1 -0
  13. package/src/lib/components/EmailForm/EmailForm.cjs +1 -1
  14. package/src/lib/components/EmailForm/EmailForm.js +1 -1
  15. package/src/lib/components/PhoneNumberField/PhoneNumberField.cjs +1 -1
  16. package/src/lib/components/PhoneNumberField/PhoneNumberField.js +1 -1
  17. package/src/lib/components/RadioButton/RadioButton.cjs +14 -0
  18. package/src/lib/components/RadioButton/RadioButton.d.ts +5 -0
  19. package/src/lib/components/RadioButton/RadioButton.js +10 -0
  20. package/src/lib/components/RadioButton/index.d.ts +1 -0
  21. package/src/lib/components/UserProfile/parts/UserProfileField/UserProfileField.cjs +1 -1
  22. package/src/lib/components/UserProfile/parts/UserProfileField/UserProfileField.d.ts +2 -1
  23. package/src/lib/components/UserProfile/parts/UserProfileField/UserProfileField.js +1 -1
  24. package/src/lib/components/index.d.ts +1 -0
  25. package/src/lib/context/DynamicContext/DynamicContext.cjs +1 -0
  26. package/src/lib/context/DynamicContext/DynamicContext.js +1 -0
  27. package/src/lib/context/DynamicContext/hooks/useTieCallbacksToEvents/useTieCallbacksToEvents.cjs +2 -2
  28. package/src/lib/context/DynamicContext/hooks/useTieCallbacksToEvents/useTieCallbacksToEvents.js +2 -2
  29. package/src/lib/context/DynamicContext/useCustomerCallbacks/useCustomerCallbacks.cjs +5 -2
  30. package/src/lib/context/DynamicContext/useCustomerCallbacks/useCustomerCallbacks.js +5 -2
  31. package/src/lib/context/DynamicContext/useDynamicContext/useDynamicContext.cjs +2 -1
  32. package/src/lib/context/DynamicContext/useDynamicContext/useDynamicContext.d.ts +1 -1
  33. package/src/lib/context/DynamicContext/useDynamicContext/useDynamicContext.js +2 -1
  34. package/src/lib/context/ViewContext/ViewContext.cjs +2 -2
  35. package/src/lib/context/ViewContext/ViewContext.js +2 -2
  36. package/src/lib/context/ViewContext/types/index.d.ts +7 -2
  37. package/src/lib/data/api/user/user.cjs +16 -0
  38. package/src/lib/data/api/user/user.js +16 -1
  39. package/src/lib/events/dynamicEvents.d.ts +1 -1
  40. package/src/lib/layout/DynamicAuthLayout/Header/header.cjs +6 -0
  41. package/src/lib/layout/DynamicAuthLayout/Header/header.js +6 -0
  42. package/src/lib/locale/en/translation.cjs +44 -3
  43. package/src/lib/locale/en/translation.d.ts +43 -2
  44. package/src/lib/locale/en/translation.js +44 -3
  45. package/src/lib/shared/types/dynamicEventsCallbacks.d.ts +2 -1
  46. package/src/lib/styles/index.shadow.cjs +1 -1
  47. package/src/lib/styles/index.shadow.js +1 -1
  48. package/src/lib/utils/constants/errors.cjs +0 -2
  49. package/src/lib/utils/constants/errors.js +1 -2
  50. package/src/lib/utils/functions/findTurnkeyWallet/findTurnkeyWallet.cjs +11 -9
  51. package/src/lib/utils/functions/findTurnkeyWallet/findTurnkeyWallet.d.ts +6 -2
  52. package/src/lib/utils/functions/findTurnkeyWallet/findTurnkeyWallet.js +12 -10
  53. package/src/lib/utils/functions/findTurnkeyWallet/index.d.ts +1 -1
  54. package/src/lib/utils/functions/index.d.ts +1 -0
  55. package/src/lib/utils/functions/serializeWalletConnectors/index.d.ts +1 -0
  56. package/src/lib/utils/functions/serializeWalletConnectors/serializeWalletConnectors.cjs +32 -0
  57. package/src/lib/utils/functions/serializeWalletConnectors/serializeWalletConnectors.d.ts +2 -0
  58. package/src/lib/utils/functions/serializeWalletConnectors/serializeWalletConnectors.js +28 -0
  59. package/src/lib/utils/hooks/index.d.ts +1 -0
  60. package/src/lib/utils/hooks/useAuthLayoutChecks/useAuthLayoutChecks.cjs +4 -1
  61. package/src/lib/utils/hooks/useAuthLayoutChecks/useAuthLayoutChecks.js +4 -1
  62. package/src/lib/utils/hooks/useCreateDynamicEmbeddedWalletMutation/useCreateDynamicEmbeddedWalletMutation.cjs +1 -1
  63. package/src/lib/utils/hooks/useCreateDynamicEmbeddedWalletMutation/useCreateDynamicEmbeddedWalletMutation.js +1 -1
  64. package/src/lib/utils/hooks/useDynamicLayoutData/useDynamicLayoutData.cjs +8 -0
  65. package/src/lib/utils/hooks/useDynamicLayoutData/useDynamicLayoutData.js +8 -0
  66. package/src/lib/utils/hooks/useEmbeddedWallet/useEmbeddedWallet.cjs +7 -8
  67. package/src/lib/utils/hooks/useEmbeddedWallet/useEmbeddedWallet.d.ts +10 -1
  68. package/src/lib/utils/hooks/useEmbeddedWallet/useEmbeddedWallet.js +7 -8
  69. package/src/lib/utils/hooks/useEmbeddedWallet/useMPCEmbeddedWallet/useCoinbaseMPC/useCoinbaseMPC.cjs +1 -1
  70. package/src/lib/utils/hooks/useEmbeddedWallet/useMPCEmbeddedWallet/useCoinbaseMPC/useCoinbaseMPC.js +1 -1
  71. package/src/lib/utils/hooks/useEmbeddedWallet/useMPCEmbeddedWallet/useMPCEmbeddedWallet.cjs +1 -1
  72. package/src/lib/utils/hooks/useEmbeddedWallet/useMPCEmbeddedWallet/useMPCEmbeddedWallet.js +1 -1
  73. package/src/lib/utils/hooks/useEmbeddedWallet/useSecureEnclaveEmbeddedWallet/useSecureEnclaveEmbeddedWallet.cjs +137 -25
  74. package/src/lib/utils/hooks/useEmbeddedWallet/useSecureEnclaveEmbeddedWallet/useSecureEnclaveEmbeddedWallet.d.ts +17 -7
  75. package/src/lib/utils/hooks/useEmbeddedWallet/useSecureEnclaveEmbeddedWallet/useSecureEnclaveEmbeddedWallet.js +140 -28
  76. package/src/lib/utils/hooks/useMergeUserAccounts/index.d.ts +1 -0
  77. package/src/lib/utils/hooks/useMergeUserAccounts/useMergeUserAccounts.cjs +99 -0
  78. package/src/lib/utils/hooks/useMergeUserAccounts/useMergeUserAccounts.d.ts +4 -0
  79. package/src/lib/utils/hooks/useMergeUserAccounts/useMergeUserAccounts.js +95 -0
  80. package/src/lib/utils/hooks/useSendDynamicProps/useSendDynamicProps.cjs +6 -13
  81. package/src/lib/utils/hooks/useSendDynamicProps/useSendDynamicProps.d.ts +1 -3
  82. package/src/lib/utils/hooks/useSendDynamicProps/useSendDynamicProps.js +6 -12
  83. package/src/lib/utils/hooks/useVerifyWallet/useVerifyWallet.cjs +5 -0
  84. package/src/lib/utils/hooks/useVerifyWallet/useVerifyWallet.js +6 -1
  85. package/src/lib/utils/hooks/useWalletConnectorOptions/useWalletConnectorOptions.cjs +25 -2
  86. package/src/lib/utils/hooks/useWalletConnectorOptions/useWalletConnectorOptions.js +25 -2
  87. package/src/lib/utils/hooks/useWalletEventListeners/useWalletEventListeners.cjs +2 -4
  88. package/src/lib/utils/hooks/useWalletEventListeners/useWalletEventListeners.d.ts +2 -1
  89. package/src/lib/utils/hooks/useWalletEventListeners/useWalletEventListeners.js +2 -4
  90. package/src/lib/views/CollectUserDataView/UserDataFields/UserField/UserField.cjs +3 -3
  91. package/src/lib/views/CollectUserDataView/UserDataFields/UserField/UserField.js +3 -3
  92. package/src/lib/views/CollectUserDataView/useFields.cjs +1 -0
  93. package/src/lib/views/CollectUserDataView/useFields.d.ts +2 -0
  94. package/src/lib/views/CollectUserDataView/useFields.js +1 -0
  95. package/src/lib/views/EmbeddedReveal/utils/turnkeyExport/turnkeyExport.cjs +2 -2
  96. package/src/lib/views/EmbeddedReveal/utils/turnkeyExport/turnkeyExport.js +2 -2
  97. package/src/lib/views/MergeUserAccountsConflictsView/MergeUserAccountsConflictsView.cjs +126 -0
  98. package/src/lib/views/MergeUserAccountsConflictsView/MergeUserAccountsConflictsView.d.ts +6 -0
  99. package/src/lib/views/MergeUserAccountsConflictsView/MergeUserAccountsConflictsView.js +122 -0
  100. package/src/lib/views/MergeUserAccountsConflictsView/index.d.ts +1 -0
  101. package/src/lib/views/MergeUserAccountsView/MergeUserAccountsView.cjs +123 -0
  102. package/src/lib/views/MergeUserAccountsView/MergeUserAccountsView.d.ts +4 -0
  103. package/src/lib/views/MergeUserAccountsView/MergeUserAccountsView.js +119 -0
  104. package/src/lib/views/MergeUserAccountsView/index.d.ts +1 -0
  105. package/src/lib/views/Passkey/utils/createEmbeddedWalletWithPasskey/createEmbeddedWalletWithPasskey.cjs +1 -1
  106. package/src/lib/views/Passkey/utils/createEmbeddedWalletWithPasskey/createEmbeddedWalletWithPasskey.js +1 -1
  107. package/src/lib/views/Passkey/utils/createPregeneratedWallet/createPregeneratedWallet.cjs +1 -1
  108. package/src/lib/views/Passkey/utils/createPregeneratedWallet/createPregeneratedWallet.js +1 -1
  109. package/src/lib/views/Passkey/utils/passkeyRecovery/passkeyRecovery.cjs +7 -7
  110. package/src/lib/views/Passkey/utils/passkeyRecovery/passkeyRecovery.js +7 -7
  111. package/src/lib/views/viewToComponentMap.cjs +4 -0
  112. package/src/lib/views/viewToComponentMap.d.ts +2 -0
  113. package/src/lib/views/viewToComponentMap.js +4 -0
@@ -10,7 +10,6 @@ const ERROR_SENDING_CODE = 'error_sending_code';
10
10
  const INVALID_REQUEST = 'invalid_request';
11
11
  const INVALID_WALLET_DATA = 'invalid_wallet';
12
12
  const SECURE_ENCLAVE_PROVIDER_NOT_ENABLED = 'secure_enclave_provider_not_enabled';
13
- const NO_SECURE_ENCLAVE_WALLET_FOUND = 'no_secure_enclave_wallet_found';
14
13
  const USER_NOT_LOGGED_IN = 'user_not_logged_in';
15
14
  const CODE_SENT = 'code_sent';
16
15
  const SESSION_CREATED = 'session_created';
@@ -22,7 +21,6 @@ exports.ERROR_SENDING_CODE = ERROR_SENDING_CODE;
22
21
  exports.INVALID_REQUEST = INVALID_REQUEST;
23
22
  exports.INVALID_WALLET_DATA = INVALID_WALLET_DATA;
24
23
  exports.MISSING_ADDRESS_ERROR = MISSING_ADDRESS_ERROR;
25
- exports.NO_SECURE_ENCLAVE_WALLET_FOUND = NO_SECURE_ENCLAVE_WALLET_FOUND;
26
24
  exports.SECURE_ENCLAVE_PROVIDER_NOT_ENABLED = SECURE_ENCLAVE_PROVIDER_NOT_ENABLED;
27
25
  exports.SESSION_CREATED = SESSION_CREATED;
28
26
  exports.SESSION_RESTORED = SESSION_RESTORED;
@@ -6,10 +6,9 @@ const ERROR_SENDING_CODE = 'error_sending_code';
6
6
  const INVALID_REQUEST = 'invalid_request';
7
7
  const INVALID_WALLET_DATA = 'invalid_wallet';
8
8
  const SECURE_ENCLAVE_PROVIDER_NOT_ENABLED = 'secure_enclave_provider_not_enabled';
9
- const NO_SECURE_ENCLAVE_WALLET_FOUND = 'no_secure_enclave_wallet_found';
10
9
  const USER_NOT_LOGGED_IN = 'user_not_logged_in';
11
10
  const CODE_SENT = 'code_sent';
12
11
  const SESSION_CREATED = 'session_created';
13
12
  const SESSION_RESTORED = 'SESSION_RESTORED';
14
13
 
15
- export { ACTIVE_SESSION, CODE_SENT, ERROR_SENDING_CODE, INVALID_REQUEST, INVALID_WALLET_DATA, MISSING_ADDRESS_ERROR, NO_SECURE_ENCLAVE_WALLET_FOUND, SECURE_ENCLAVE_PROVIDER_NOT_ENABLED, SESSION_CREATED, SESSION_RESTORED, USER_NOT_LOGGED_IN };
14
+ export { ACTIVE_SESSION, CODE_SENT, ERROR_SENDING_CODE, INVALID_REQUEST, INVALID_WALLET_DATA, MISSING_ADDRESS_ERROR, SECURE_ENCLAVE_PROVIDER_NOT_ENABLED, SESSION_CREATED, SESSION_RESTORED, USER_NOT_LOGGED_IN };
@@ -3,9 +3,9 @@
3
3
 
4
4
  Object.defineProperty(exports, '__esModule', { value: true });
5
5
 
6
- var utils = require('@dynamic-labs/utils');
6
+ var sdkApiCore = require('@dynamic-labs/sdk-api-core');
7
+ require('@dynamic-labs/utils');
7
8
  var values = require('../../constants/values.cjs');
8
- var errors = require('../../constants/errors.cjs');
9
9
 
10
10
  const findTurnkeyWalletByChain = (walletOptions, chainName) => {
11
11
  const chain = chainName
@@ -13,14 +13,16 @@ const findTurnkeyWalletByChain = (walletOptions, chainName) => {
13
13
  : undefined;
14
14
  return walletOptions === null || walletOptions === void 0 ? void 0 : walletOptions.find(({ key, walletConnector }) => key.startsWith('turnkey') && (walletConnector === null || walletConnector === void 0 ? void 0 : walletConnector.connectedChain) === chain);
15
15
  };
16
- const findTurnkeyWalletByAddress = (verifiedCredentials, address) => {
17
- const turnkeyVCs = verifiedCredentials === null || verifiedCredentials === void 0 ? void 0 : verifiedCredentials.filter(({ walletName }) => walletName === null || walletName === void 0 ? void 0 : walletName.startsWith('turnkey'));
18
- const targetTurnkeyWallet = turnkeyVCs === null || turnkeyVCs === void 0 ? void 0 : turnkeyVCs.find((vc) => { var _a; return ((_a = vc.address) === null || _a === void 0 ? void 0 : _a.toLowerCase()) === address.toLowerCase(); });
19
- if (!targetTurnkeyWallet) {
20
- throw new utils.DynamicError('User does not have a secure enclave wallet', errors.NO_SECURE_ENCLAVE_WALLET_FOUND);
16
+ const findTurnkeyWalletByPrimaryChain = (walletOptions, chainConfigurations, verifiedCredentials) => {
17
+ var _a;
18
+ const primaryEmbeddedChain = ((_a = chainConfigurations === null || chainConfigurations === void 0 ? void 0 : chainConfigurations.find((chain) => chain.primary)) === null || _a === void 0 ? void 0 : _a.name) || sdkApiCore.ChainEnum.Evm;
19
+ const walletConnector = findTurnkeyWalletByChain(walletOptions, values.ChainEnumToVerifiedCredentialName[primaryEmbeddedChain]);
20
+ const turnkeyVC = verifiedCredentials === null || verifiedCredentials === void 0 ? void 0 : verifiedCredentials.find(({ walletName, chain }) => (walletName === null || walletName === void 0 ? void 0 : walletName.startsWith('turnkey')) && chain === primaryEmbeddedChain);
21
+ if (!turnkeyVC || !walletConnector) {
22
+ return undefined;
21
23
  }
22
- return targetTurnkeyWallet;
24
+ return Object.assign(Object.assign({}, turnkeyVC), walletConnector);
23
25
  };
24
26
 
25
- exports.findTurnkeyWalletByAddress = findTurnkeyWalletByAddress;
26
27
  exports.findTurnkeyWalletByChain = findTurnkeyWalletByChain;
28
+ exports.findTurnkeyWalletByPrimaryChain = findTurnkeyWalletByPrimaryChain;
@@ -1,4 +1,8 @@
1
- import { JwtVerifiedCredential } from '@dynamic-labs/sdk-api-core';
1
+ import { ChainConfiguration, JwtVerifiedCredential } from '@dynamic-labs/sdk-api-core';
2
+ import { WalletConnector } from '@dynamic-labs/wallet-connector-core';
2
3
  import { WalletOption } from '../../../shared';
3
4
  export declare const findTurnkeyWalletByChain: (walletOptions: WalletOption[] | undefined, chainName: string | undefined) => WalletOption | undefined;
4
- export declare const findTurnkeyWalletByAddress: (verifiedCredentials: JwtVerifiedCredential[], address: string) => JwtVerifiedCredential;
5
+ export declare const findTurnkeyWalletByPrimaryChain: (walletOptions: WalletOption[] | undefined, chainConfigurations: ChainConfiguration[] | undefined, verifiedCredentials: JwtVerifiedCredential[]) => (JwtVerifiedCredential & WalletOption) | undefined;
6
+ export declare const findTurnkeyWalletByAddress: (walletOptions: WalletOption[] | undefined, verifiedCredentials: JwtVerifiedCredential[], address: string | undefined) => (JwtVerifiedCredential & {
7
+ walletConnector?: WalletConnector;
8
+ }) | undefined;
@@ -1,7 +1,7 @@
1
1
  'use client'
2
- import { DynamicError } from '@dynamic-labs/utils';
3
- import { VerifiedCredentialNameToChainEnum } from '../../constants/values.js';
4
- import { NO_SECURE_ENCLAVE_WALLET_FOUND } from '../../constants/errors.js';
2
+ import { ChainEnum } from '@dynamic-labs/sdk-api-core';
3
+ import '@dynamic-labs/utils';
4
+ import { VerifiedCredentialNameToChainEnum, ChainEnumToVerifiedCredentialName } from '../../constants/values.js';
5
5
 
6
6
  const findTurnkeyWalletByChain = (walletOptions, chainName) => {
7
7
  const chain = chainName
@@ -9,13 +9,15 @@ const findTurnkeyWalletByChain = (walletOptions, chainName) => {
9
9
  : undefined;
10
10
  return walletOptions === null || walletOptions === void 0 ? void 0 : walletOptions.find(({ key, walletConnector }) => key.startsWith('turnkey') && (walletConnector === null || walletConnector === void 0 ? void 0 : walletConnector.connectedChain) === chain);
11
11
  };
12
- const findTurnkeyWalletByAddress = (verifiedCredentials, address) => {
13
- const turnkeyVCs = verifiedCredentials === null || verifiedCredentials === void 0 ? void 0 : verifiedCredentials.filter(({ walletName }) => walletName === null || walletName === void 0 ? void 0 : walletName.startsWith('turnkey'));
14
- const targetTurnkeyWallet = turnkeyVCs === null || turnkeyVCs === void 0 ? void 0 : turnkeyVCs.find((vc) => { var _a; return ((_a = vc.address) === null || _a === void 0 ? void 0 : _a.toLowerCase()) === address.toLowerCase(); });
15
- if (!targetTurnkeyWallet) {
16
- throw new DynamicError('User does not have a secure enclave wallet', NO_SECURE_ENCLAVE_WALLET_FOUND);
12
+ const findTurnkeyWalletByPrimaryChain = (walletOptions, chainConfigurations, verifiedCredentials) => {
13
+ var _a;
14
+ const primaryEmbeddedChain = ((_a = chainConfigurations === null || chainConfigurations === void 0 ? void 0 : chainConfigurations.find((chain) => chain.primary)) === null || _a === void 0 ? void 0 : _a.name) || ChainEnum.Evm;
15
+ const walletConnector = findTurnkeyWalletByChain(walletOptions, ChainEnumToVerifiedCredentialName[primaryEmbeddedChain]);
16
+ const turnkeyVC = verifiedCredentials === null || verifiedCredentials === void 0 ? void 0 : verifiedCredentials.find(({ walletName, chain }) => (walletName === null || walletName === void 0 ? void 0 : walletName.startsWith('turnkey')) && chain === primaryEmbeddedChain);
17
+ if (!turnkeyVC || !walletConnector) {
18
+ return undefined;
17
19
  }
18
- return targetTurnkeyWallet;
20
+ return Object.assign(Object.assign({}, turnkeyVC), walletConnector);
19
21
  };
20
22
 
21
- export { findTurnkeyWalletByAddress, findTurnkeyWalletByChain };
23
+ export { findTurnkeyWalletByChain, findTurnkeyWalletByPrimaryChain };
@@ -1 +1 @@
1
- export { findTurnkeyWalletByChain, findTurnkeyWalletByAddress, } from './findTurnkeyWallet';
1
+ export { findTurnkeyWalletByChain, findTurnkeyWalletByPrimaryChain, findTurnkeyWalletByAddress, } from './findTurnkeyWallet';
@@ -72,3 +72,4 @@ export * from './getUserVerifiedCredentialType';
72
72
  export * from './hasEmbeddedWallet';
73
73
  export * from './getEmbeddedWalletAuthHandler';
74
74
  export * from './getEmbeddedWalletSessionExpiration';
75
+ export * from './serializeWalletConnectors';
@@ -0,0 +1 @@
1
+ export { serializeWalletConnectors } from './serializeWalletConnectors';
@@ -0,0 +1,32 @@
1
+ 'use client'
2
+ 'use strict';
3
+
4
+ Object.defineProperty(exports, '__esModule', { value: true });
5
+
6
+ require('@dynamic-labs/sdk-api-core');
7
+ var logger = require('../../../shared/logger.cjs');
8
+ require('@dynamic-labs/iconic');
9
+ require('@dynamic-labs/wallet-connector-core');
10
+ require('react/jsx-runtime');
11
+ require('../../../context/ViewContext/ViewContext.cjs');
12
+ require('react');
13
+ require('@dynamic-labs/wallet-book');
14
+ require('../../constants/colors.cjs');
15
+ require('../../constants/values.cjs');
16
+ require('../../../shared/utils/classes/storage/localStorage.cjs');
17
+ require('@dynamic-labs/utils');
18
+ require('../../../shared/consts/index.cjs');
19
+
20
+ const serializeWalletConnectors = (walletConnectors) => {
21
+ try {
22
+ if (!walletConnectors)
23
+ return undefined;
24
+ return walletConnectors.map((connector) => connector.name);
25
+ }
26
+ catch (error) {
27
+ logger.logger.error('error serializing walletConnectors', error);
28
+ return undefined;
29
+ }
30
+ };
31
+
32
+ exports.serializeWalletConnectors = serializeWalletConnectors;
@@ -0,0 +1,2 @@
1
+ import { WalletConnectorsMethod } from '@dynamic-labs/wallet-connector-core';
2
+ export declare const serializeWalletConnectors: (walletConnectors?: WalletConnectorsMethod[]) => string[] | undefined;
@@ -0,0 +1,28 @@
1
+ 'use client'
2
+ import '@dynamic-labs/sdk-api-core';
3
+ import { logger } from '../../../shared/logger.js';
4
+ import '@dynamic-labs/iconic';
5
+ import '@dynamic-labs/wallet-connector-core';
6
+ import 'react/jsx-runtime';
7
+ import '../../../context/ViewContext/ViewContext.js';
8
+ import 'react';
9
+ import '@dynamic-labs/wallet-book';
10
+ import '../../constants/colors.js';
11
+ import '../../constants/values.js';
12
+ import '../../../shared/utils/classes/storage/localStorage.js';
13
+ import '@dynamic-labs/utils';
14
+ import '../../../shared/consts/index.js';
15
+
16
+ const serializeWalletConnectors = (walletConnectors) => {
17
+ try {
18
+ if (!walletConnectors)
19
+ return undefined;
20
+ return walletConnectors.map((connector) => connector.name);
21
+ }
22
+ catch (error) {
23
+ logger.error('error serializing walletConnectors', error);
24
+ return undefined;
25
+ }
26
+ };
27
+
28
+ export { serializeWalletConnectors };
@@ -52,3 +52,4 @@ export { useSendDynamicProps } from './useSendDynamicProps';
52
52
  export { useNetworkNotSupported } from './useNetworkNotSupported';
53
53
  export { useHandleVerifiedUser } from './useHandleVerifiedUser';
54
54
  export { useMfa } from './useMfa';
55
+ export { useMergeUserAccounts } from './useMergeUserAccounts';
@@ -165,7 +165,9 @@ const useAuthLayoutChecks = () => {
165
165
  view.type === 'qr-code' ||
166
166
  view.type === 'wallet-used' ||
167
167
  view.type === 'email-wallet-otp-verification-view' ||
168
- view.type === 'farcaster-connect-view');
168
+ view.type === 'farcaster-connect-view' ||
169
+ view.type === 'merge-user-accounts' ||
170
+ view.type === 'merge-user-accounts-conflicts');
169
171
  const showCloseButton = view.type !== 'login-with-email-or-wallet-full-wallet-list' &&
170
172
  view.type !== 'login-with-email-verification' &&
171
173
  view.type !== 'login-with-sms-verification' &&
@@ -189,6 +191,7 @@ const useAuthLayoutChecks = () => {
189
191
  view.type === 'passkey-intro' ||
190
192
  view.type === 'qr-code' ||
191
193
  view.type === 'farcaster-connect-view' ||
194
+ view.type === 'merge-user-accounts-conflicts' ||
192
195
  (view.type === 'merge-user-accounts-with-same-email' && !user);
193
196
  const showDefaultFooter = !showConnectedWalletProgress && !showDynamicFooter && !showToSFooter;
194
197
  const shouldHideDynamicFooterSeparator = showDynamicFooter && showToSFooter;
@@ -161,7 +161,9 @@ const useAuthLayoutChecks = () => {
161
161
  view.type === 'qr-code' ||
162
162
  view.type === 'wallet-used' ||
163
163
  view.type === 'email-wallet-otp-verification-view' ||
164
- view.type === 'farcaster-connect-view');
164
+ view.type === 'farcaster-connect-view' ||
165
+ view.type === 'merge-user-accounts' ||
166
+ view.type === 'merge-user-accounts-conflicts');
165
167
  const showCloseButton = view.type !== 'login-with-email-or-wallet-full-wallet-list' &&
166
168
  view.type !== 'login-with-email-verification' &&
167
169
  view.type !== 'login-with-sms-verification' &&
@@ -185,6 +187,7 @@ const useAuthLayoutChecks = () => {
185
187
  view.type === 'passkey-intro' ||
186
188
  view.type === 'qr-code' ||
187
189
  view.type === 'farcaster-connect-view' ||
190
+ view.type === 'merge-user-accounts-conflicts' ||
188
191
  (view.type === 'merge-user-accounts-with-same-email' && !user);
189
192
  const showDefaultFooter = !showConnectedWalletProgress && !showDynamicFooter && !showToSFooter;
190
193
  const shouldHideDynamicFooterSeparator = showDynamicFooter && showToSFooter;
@@ -132,7 +132,7 @@ const useCreateDynamicEmbeddedWalletMutation = () => {
132
132
  }
133
133
  setUser(updateJWTAndCreateUserProfile.updateJWTAndCreateUserProfile(signersResponse.jwt, signersResponse.minifiedJwt));
134
134
  setShowAuthFlow(false, { performMultiWalletChecks: false });
135
- dynamicEvents.dynamicEvents.emit('embeddedWalletCreated', passkeyWallet, turnkeyVerifiedCredentials);
135
+ dynamicEvents.dynamicEvents.emit('embeddedWalletCreated', passkeyWallet, turnkeyVerifiedCredentials, authToken);
136
136
  }
137
137
  catch (err) {
138
138
  setError(err);
@@ -128,7 +128,7 @@ const useCreateDynamicEmbeddedWalletMutation = () => {
128
128
  }
129
129
  setUser(updateJWTAndCreateUserProfile(signersResponse.jwt, signersResponse.minifiedJwt));
130
130
  setShowAuthFlow(false, { performMultiWalletChecks: false });
131
- dynamicEvents.emit('embeddedWalletCreated', passkeyWallet, turnkeyVerifiedCredentials);
131
+ dynamicEvents.emit('embeddedWalletCreated', passkeyWallet, turnkeyVerifiedCredentials, authToken);
132
132
  }
133
133
  catch (err) {
134
134
  setError(err);
@@ -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'),
@@ -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,15 +89,10 @@ var useInternalDynamicContext = require('../../../context/DynamicContext/useDyna
90
89
  */
91
90
  const useEmbeddedWallet = () => {
92
91
  const { onboardingOnlyJwt } = useInternalDynamicContext.useInternalDynamicContext();
93
- const { createPassword: internalCreatePassword } = useEmbeddedWalletPassword.useEmbeddedWalletPassword();
94
- const { createEmbeddedWallet: createCoinbaseMPCWallet, canCreateMPCWallet } = useMPCEmbeddedWallet.useMPCEmbeddedWallet();
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
- /**
99
- * @deprecated - Use this from the useMPCEmbeddedWallet hook instead.
100
- */
101
- const createPassword = React.useCallback((showIntro) => _tslib.__awaiter(void 0, void 0, void 0, function* () { return internalCreatePassword(showIntro); }), [internalCreatePassword]);
102
96
  const createEmbeddedWallet = React.useCallback((chain) => _tslib.__awaiter(void 0, void 0, void 0, function* () {
103
97
  if (yield canCreateMPCWallet(chain)) {
104
98
  const wallet = yield createCoinbaseMPCWallet(chain);
@@ -109,8 +103,13 @@ const useEmbeddedWallet = () => {
109
103
  }), [canCreateMPCWallet, createCoinbaseMPCWallet, createTurnkeyEmbeddedWallet]);
110
104
  return {
111
105
  createEmbeddedWallet,
106
+ createOrRestoreSession,
107
+ createPasskey,
112
108
  createPassword,
109
+ getPasskeys,
113
110
  isLoadingEmbeddedWallet,
111
+ isSessionActive,
112
+ sendOneTimeCode,
114
113
  userHasEmbeddedWallet,
115
114
  };
116
115
  };
@@ -10,7 +10,16 @@ import { Wallet } from '../../../shared';
10
10
  */
11
11
  export declare const useEmbeddedWallet: () => {
12
12
  readonly createEmbeddedWallet: (chain?: ChainEnum) => Promise<Wallet | undefined>;
13
- readonly createPassword: (showIntro?: boolean) => Promise<string>;
13
+ readonly createOrRestoreSession: ({ oneTimeCode }: {
14
+ oneTimeCode?: string | undefined;
15
+ }) => Promise<string>;
16
+ readonly createPasskey: ({ oneTimeCode }: {
17
+ oneTimeCode?: string | undefined;
18
+ }) => Promise<import("dist/packages/wallet-connector-core/src").WebAuthnAttestation>;
19
+ readonly createPassword: (showIntro?: boolean | undefined) => Promise<string>;
20
+ readonly getPasskeys: () => Promise<import("@dynamic-labs/sdk-api-core").UserPasskey[]>;
14
21
  readonly isLoadingEmbeddedWallet: boolean;
22
+ readonly isSessionActive: boolean;
23
+ readonly sendOneTimeCode: () => Promise<string>;
15
24
  readonly userHasEmbeddedWallet: () => boolean;
16
25
  };
@@ -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,15 +85,10 @@ import { useInternalDynamicContext } from '../../../context/DynamicContext/useDy
86
85
  */
87
86
  const useEmbeddedWallet = () => {
88
87
  const { onboardingOnlyJwt } = useInternalDynamicContext();
89
- const { createPassword: internalCreatePassword } = useEmbeddedWalletPassword();
90
- const { createEmbeddedWallet: createCoinbaseMPCWallet, canCreateMPCWallet } = useMPCEmbeddedWallet();
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
- /**
95
- * @deprecated - Use this from the useMPCEmbeddedWallet hook instead.
96
- */
97
- const createPassword = useCallback((showIntro) => __awaiter(void 0, void 0, void 0, function* () { return internalCreatePassword(showIntro); }), [internalCreatePassword]);
98
92
  const createEmbeddedWallet = useCallback((chain) => __awaiter(void 0, void 0, void 0, function* () {
99
93
  if (yield canCreateMPCWallet(chain)) {
100
94
  const wallet = yield createCoinbaseMPCWallet(chain);
@@ -105,8 +99,13 @@ const useEmbeddedWallet = () => {
105
99
  }), [canCreateMPCWallet, createCoinbaseMPCWallet, createTurnkeyEmbeddedWallet]);
106
100
  return {
107
101
  createEmbeddedWallet,
102
+ createOrRestoreSession,
103
+ createPasskey,
108
104
  createPassword,
105
+ getPasskeys,
109
106
  isLoadingEmbeddedWallet,
107
+ isSessionActive,
108
+ sendOneTimeCode,
110
109
  userHasEmbeddedWallet,
111
110
  };
112
111
  };
@@ -162,7 +162,7 @@ const useCoinbaseMPC = () => {
162
162
  connector,
163
163
  id: jwtVerifiedCredential.id,
164
164
  };
165
- dynamicEvents.dynamicEvents.emit('embeddedWalletCreated', coinbaseMPCWallet, jwtVerifiedCredential);
165
+ dynamicEvents.dynamicEvents.emit('embeddedWalletCreated', coinbaseMPCWallet, jwtVerifiedCredential, jwt);
166
166
  return coinbaseMPCWallet;
167
167
  }
168
168
  catch (error) {
@@ -158,7 +158,7 @@ const useCoinbaseMPC = () => {
158
158
  connector,
159
159
  id: jwtVerifiedCredential.id,
160
160
  };
161
- dynamicEvents.emit('embeddedWalletCreated', coinbaseMPCWallet, jwtVerifiedCredential);
161
+ dynamicEvents.emit('embeddedWalletCreated', coinbaseMPCWallet, jwtVerifiedCredential, jwt);
162
162
  return coinbaseMPCWallet;
163
163
  }
164
164
  catch (error) {
@@ -40,9 +40,9 @@ require('../../../../context/UserWalletsContext/UserWalletsContext.cjs');
40
40
  require('../../../../context/VerificationContext/VerificationContext.cjs');
41
41
  require('react-dom');
42
42
  var WalletContext = require('../../../../context/WalletContext/WalletContext.cjs');
43
- var useEmbeddedWalletPassword = require('../../useEmbeddedWalletPassword/useEmbeddedWalletPassword.cjs');
44
43
  var validateUserIsLoggedIn = require('../../../validations/validateUserIsLoggedIn/validateUserIsLoggedIn.cjs');
45
44
  var validateMPCProviderEnabled = require('../../../validations/validateMPCProviderEnabled/validateMPCProviderEnabled.cjs');
45
+ var useEmbeddedWalletPassword = require('../../useEmbeddedWalletPassword/useEmbeddedWalletPassword.cjs');
46
46
  var useCoinbaseMPC = require('./useCoinbaseMPC/useCoinbaseMPC.cjs');
47
47
  require('../../../../context/ThemeContext/ThemeContext.cjs');
48
48
  require('@dynamic-labs/types');
@@ -36,9 +36,9 @@ import '../../../../context/UserWalletsContext/UserWalletsContext.js';
36
36
  import '../../../../context/VerificationContext/VerificationContext.js';
37
37
  import 'react-dom';
38
38
  import { useWalletContext } from '../../../../context/WalletContext/WalletContext.js';
39
- import { useEmbeddedWalletPassword } from '../../useEmbeddedWalletPassword/useEmbeddedWalletPassword.js';
40
39
  import { validateUserIsLoggedIn } from '../../../validations/validateUserIsLoggedIn/validateUserIsLoggedIn.js';
41
40
  import { validateMPCProviderEnabled } from '../../../validations/validateMPCProviderEnabled/validateMPCProviderEnabled.js';
41
+ import { useEmbeddedWalletPassword } from '../../useEmbeddedWalletPassword/useEmbeddedWalletPassword.js';
42
42
  import { useCoinbaseMPC } from './useCoinbaseMPC/useCoinbaseMPC.js';
43
43
  import '../../../../context/ThemeContext/ThemeContext.js';
44
44
  import '@dynamic-labs/types';