@dynamic-labs/sdk-react-core 2.1.0-alpha.6 → 2.1.0-alpha.8

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 (24) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/package.cjs +2 -2
  3. package/package.js +2 -2
  4. package/package.json +13 -13
  5. package/src/lib/context/DynamicContext/DynamicContext.cjs +5 -1
  6. package/src/lib/context/DynamicContext/DynamicContext.js +5 -1
  7. package/src/lib/data/api/wallets/wallets.cjs +21 -5
  8. package/src/lib/data/api/wallets/wallets.d.ts +4 -0
  9. package/src/lib/data/api/wallets/wallets.js +21 -6
  10. package/src/lib/utils/hooks/useCreateDynamicEmbeddedWalletMutation/useCreateDynamicEmbeddedWalletMutation.cjs +1 -1
  11. package/src/lib/utils/hooks/useCreateDynamicEmbeddedWalletMutation/useCreateDynamicEmbeddedWalletMutation.js +1 -1
  12. package/src/lib/utils/hooks/useEmbeddedWallet/useMPCEmbeddedWallet/useCoinbaseMPC/useCoinbaseMPC.cjs +4 -4
  13. package/src/lib/utils/hooks/useEmbeddedWallet/useMPCEmbeddedWallet/useCoinbaseMPC/useCoinbaseMPC.js +4 -4
  14. package/src/lib/utils/hooks/useEmbeddedWallet/useSecureEnclaveEmbeddedWallet/useSecureEnclaveEmbeddedWallet.cjs +1 -1
  15. package/src/lib/utils/hooks/useEmbeddedWallet/useSecureEnclaveEmbeddedWallet/useSecureEnclaveEmbeddedWallet.js +1 -1
  16. package/src/lib/utils/hooks/usePrimaryWalletId/usePrimaryWalletId.cjs +13 -4
  17. package/src/lib/utils/hooks/usePrimaryWalletId/usePrimaryWalletId.d.ts +10 -2
  18. package/src/lib/utils/hooks/usePrimaryWalletId/usePrimaryWalletId.js +13 -4
  19. package/src/lib/views/WalletList/WalletList.cjs +3 -6
  20. package/src/lib/views/WalletList/WalletList.js +3 -6
  21. package/src/lib/views/WalletLockedView/WalletLockedView.cjs +2 -8
  22. package/src/lib/views/WalletLockedView/WalletLockedView.js +2 -8
  23. package/src/lib/widgets/DynamicWidget/hooks/useFetchNameService/useFetchNameService.cjs +1 -1
  24. package/src/lib/widgets/DynamicWidget/hooks/useFetchNameService/useFetchNameService.js +1 -1
package/CHANGELOG.md CHANGED
@@ -1,4 +1,22 @@
1
1
 
2
+ ## [2.1.0-alpha.8](https://github.com/dynamic-labs/DynamicAuth/compare/v2.1.0-alpha.7...v2.1.0-alpha.8) (2024-04-26)
3
+
4
+
5
+ ### Bug Fixes
6
+
7
+ * display wallet tabs when linking a wallet ([#5491](https://github.com/dynamic-labs/DynamicAuth/issues/5491)) ([10fd6b4](https://github.com/dynamic-labs/DynamicAuth/commit/10fd6b4d9aec7596338c50e17f79f6be534cf2c1))
8
+ * ensure zerodev viem client handles eth_accounts call ([#5477](https://github.com/dynamic-labs/DynamicAuth/issues/5477)) ([1132e1e](https://github.com/dynamic-labs/DynamicAuth/commit/1132e1e8655b58e81cb56789453ba56a059f52ec))
9
+ * network with keplr ([#5485](https://github.com/dynamic-labs/DynamicAuth/issues/5485)) ([b86f2fc](https://github.com/dynamic-labs/DynamicAuth/commit/b86f2fce491f9752e80a86643916da9ac7fb9276))
10
+ * refetch nameservice data and display properly ([#5476](https://github.com/dynamic-labs/DynamicAuth/issues/5476)) ([2aee798](https://github.com/dynamic-labs/DynamicAuth/commit/2aee798846f69496201bec7aa52e7ec1f370b7c3))
11
+ * use embeddedWallet create response authToken in embeddedWalletCreated ([#5478](https://github.com/dynamic-labs/DynamicAuth/issues/5478)) ([51772da](https://github.com/dynamic-labs/DynamicAuth/commit/51772daf557a72984c757efd8301e2b510dc37f1))
12
+
13
+ ## [2.1.0-alpha.7](https://github.com/dynamic-labs/DynamicAuth/compare/v2.1.0-alpha.6...v2.1.0-alpha.7) (2024-04-25)
14
+
15
+
16
+ ### Bug Fixes
17
+
18
+ * restore embedded wallet session iframe element conflict ([#5474](https://github.com/dynamic-labs/DynamicAuth/issues/5474)) ([c157477](https://github.com/dynamic-labs/DynamicAuth/commit/c157477ea126b3130b13b711796bdd06215e7af1))
19
+
2
20
  ## [2.1.0-alpha.6](https://github.com/dynamic-labs/DynamicAuth/compare/v2.1.0-alpha.5...v2.1.0-alpha.6) (2024-04-24)
3
21
 
4
22
 
package/package.cjs CHANGED
@@ -3,9 +3,9 @@
3
3
 
4
4
  Object.defineProperty(exports, '__esModule', { value: true });
5
5
 
6
- var version = "2.1.0-alpha.6";
6
+ var version = "2.1.0-alpha.8";
7
7
  var dependencies = {
8
- "@dynamic-labs/sdk-api-core": "0.0.425",
8
+ "@dynamic-labs/sdk-api-core": "0.0.429",
9
9
  "@hcaptcha/react-hcaptcha": "1.4.4",
10
10
  "country-list": "2.3.0",
11
11
  formik: "2.2.9",
package/package.js CHANGED
@@ -1,7 +1,7 @@
1
1
  'use client'
2
- var version = "2.1.0-alpha.6";
2
+ var version = "2.1.0-alpha.8";
3
3
  var dependencies = {
4
- "@dynamic-labs/sdk-api-core": "0.0.425",
4
+ "@dynamic-labs/sdk-api-core": "0.0.429",
5
5
  "@hcaptcha/react-hcaptcha": "1.4.4",
6
6
  "country-list": "2.3.0",
7
7
  formik: "2.2.9",
package/package.json CHANGED
@@ -1,13 +1,13 @@
1
1
  {
2
2
  "name": "@dynamic-labs/sdk-react-core",
3
- "version": "2.1.0-alpha.6",
3
+ "version": "2.1.0-alpha.8",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "https://github.com/dynamic-labs/DynamicAuth.git",
7
7
  "directory": "packages/sdk-react-core"
8
8
  },
9
9
  "dependencies": {
10
- "@dynamic-labs/sdk-api-core": "0.0.425",
10
+ "@dynamic-labs/sdk-api-core": "0.0.429",
11
11
  "@hcaptcha/react-hcaptcha": "1.4.4",
12
12
  "country-list": "2.3.0",
13
13
  "formik": "2.2.9",
@@ -17,17 +17,17 @@
17
17
  "react-i18next": "13.5.0",
18
18
  "yup": "0.32.11",
19
19
  "react-international-phone": "4.2.5",
20
- "@dynamic-labs/iconic": "2.1.0-alpha.6",
21
- "@dynamic-labs/logger": "2.1.0-alpha.6",
22
- "@dynamic-labs/multi-wallet": "2.1.0-alpha.6",
23
- "@dynamic-labs/rpc-provider-ethereum": "2.1.0-alpha.6",
24
- "@dynamic-labs/rpc-provider-solana": "2.1.0-alpha.6",
25
- "@dynamic-labs/rpc-providers": "2.1.0-alpha.6",
26
- "@dynamic-labs/types": "2.1.0-alpha.6",
27
- "@dynamic-labs/utils": "2.1.0-alpha.6",
28
- "@dynamic-labs/viem-utils": "2.1.0-alpha.6",
29
- "@dynamic-labs/wallet-book": "2.1.0-alpha.6",
30
- "@dynamic-labs/wallet-connector-core": "2.1.0-alpha.6",
20
+ "@dynamic-labs/iconic": "2.1.0-alpha.8",
21
+ "@dynamic-labs/logger": "2.1.0-alpha.8",
22
+ "@dynamic-labs/multi-wallet": "2.1.0-alpha.8",
23
+ "@dynamic-labs/rpc-provider-ethereum": "2.1.0-alpha.8",
24
+ "@dynamic-labs/rpc-provider-solana": "2.1.0-alpha.8",
25
+ "@dynamic-labs/rpc-providers": "2.1.0-alpha.8",
26
+ "@dynamic-labs/types": "2.1.0-alpha.8",
27
+ "@dynamic-labs/utils": "2.1.0-alpha.8",
28
+ "@dynamic-labs/viem-utils": "2.1.0-alpha.8",
29
+ "@dynamic-labs/wallet-book": "2.1.0-alpha.8",
30
+ "@dynamic-labs/wallet-connector-core": "2.1.0-alpha.8",
31
31
  "eventemitter3": "5.0.1"
32
32
  },
33
33
  "devDependencies": {
@@ -228,7 +228,11 @@ const InnerDynamicContextProvider = ({ children, theme, settings: settings$1, lo
228
228
  walletUiUtils,
229
229
  });
230
230
  const [authMode, setAuthMode] = useLocalStorage.useLocalStorage(localStorage$1.AUTH_MODE, initialAuthenticationMode);
231
- const { clearPrimaryWalletId, primaryWalletId, setPrimaryWalletId } = usePrimaryWalletId.usePrimaryWalletId();
231
+ const { clearPrimaryWalletId, primaryWalletId, setPrimaryWalletId } = usePrimaryWalletId.usePrimaryWalletId({
232
+ environmentId,
233
+ minAuthToken: getMinAuthToken.getMinAuthToken(),
234
+ setUser,
235
+ });
232
236
  // this is a state because it's set based on primaryWallet and bridgeChainsToConnect,
233
237
  // which are only available further down and have would have circular dependencies
234
238
  const [requiredWalletsConnected, setRequiredWalletsConnected] = React.useState(false);
@@ -224,7 +224,11 @@ const InnerDynamicContextProvider = ({ children, theme, settings, locale, }) =>
224
224
  walletUiUtils,
225
225
  });
226
226
  const [authMode, setAuthMode] = useLocalStorage(AUTH_MODE, initialAuthenticationMode);
227
- const { clearPrimaryWalletId, primaryWalletId, setPrimaryWalletId } = usePrimaryWalletId();
227
+ const { clearPrimaryWalletId, primaryWalletId, setPrimaryWalletId } = usePrimaryWalletId({
228
+ environmentId,
229
+ minAuthToken: getMinAuthToken(),
230
+ setUser,
231
+ });
228
232
  // this is a state because it's set based on primaryWallet and bridgeChainsToConnect,
229
233
  // which are only available further down and have would have circular dependencies
230
234
  const [requiredWalletsConnected, setRequiredWalletsConnected] = useState(false);
@@ -19,7 +19,22 @@ require('../../../shared/utils/classes/storage/localStorage.cjs');
19
19
  require('../../../shared/consts/index.cjs');
20
20
  var api = require('../api.cjs');
21
21
 
22
- const linkWallet = (environmentId_1, _a, userJwt_1) => _tslib.__awaiter(void 0, [environmentId_1, _a, userJwt_1], void 0, function* (environmentId, { messageToSign, network, signedMessage, publicWalletAddress, chain, walletName, walletProvider, additionalWalletAddresses, backup, password, passwordSource, }, userJwt) {
22
+ const storeSelectedWallet = (_a, userJwt_1) => _tslib.__awaiter(void 0, [_a, userJwt_1], void 0, function* ({ environmentId, walletId, }, userJwt) {
23
+ try {
24
+ const response = yield api.sdkApi(userJwt).selectUserWallet({
25
+ environmentId,
26
+ userWalletSelectionRequest: {
27
+ walletId,
28
+ },
29
+ });
30
+ return response;
31
+ }
32
+ catch (e) {
33
+ logger.logger.error('error storing selected wallet', e);
34
+ return undefined;
35
+ }
36
+ });
37
+ const linkWallet = (environmentId_1, _b, userJwt_2) => _tslib.__awaiter(void 0, [environmentId_1, _b, userJwt_2], void 0, function* (environmentId, { messageToSign, network, signedMessage, publicWalletAddress, chain, walletName, walletProvider, additionalWalletAddresses, backup, password, passwordSource, }, userJwt) {
23
38
  const verifyRequest = sdkApiCore.VerifyRequestFromJSON({
24
39
  additionalWalletAddresses,
25
40
  backup,
@@ -57,7 +72,7 @@ const linkWallet = (environmentId_1, _a, userJwt_1) => _tslib.__awaiter(void 0,
57
72
  return undefined;
58
73
  }
59
74
  });
60
- const unlinkWallet = (_b, userJwt_2) => _tslib.__awaiter(void 0, [_b, userJwt_2], void 0, function* ({ environmentId, primaryWalletId, walletId, }, userJwt) {
75
+ const unlinkWallet = (_c, userJwt_3) => _tslib.__awaiter(void 0, [_c, userJwt_3], void 0, function* ({ environmentId, primaryWalletId, walletId, }, userJwt) {
61
76
  try {
62
77
  const response = yield api.sdkApi(userJwt).verifyUnlink({
63
78
  environmentId,
@@ -72,7 +87,7 @@ const unlinkWallet = (_b, userJwt_2) => _tslib.__awaiter(void 0, [_b, userJwt_2]
72
87
  return undefined;
73
88
  }
74
89
  });
75
- const transferWallet = (environmentId_2, _c, userJwt_3) => _tslib.__awaiter(void 0, [environmentId_2, _c, userJwt_3], void 0, function* (environmentId, { network, messageToSign, signedMessage, publicWalletAddress, chain, walletName, walletProvider, skipEmptyAccountCheck = false, }, userJwt) {
90
+ const transferWallet = (environmentId_2, _d, userJwt_4) => _tslib.__awaiter(void 0, [environmentId_2, _d, userJwt_4], void 0, function* (environmentId, { network, messageToSign, signedMessage, publicWalletAddress, chain, walletName, walletProvider, skipEmptyAccountCheck = false, }, userJwt) {
76
91
  // We should find a better way to do this than force type casting
77
92
  const verifyRequest = {
78
93
  chain,
@@ -91,11 +106,11 @@ const transferWallet = (environmentId_2, _c, userJwt_3) => _tslib.__awaiter(void
91
106
  });
92
107
  return response;
93
108
  }
94
- catch (_d) {
109
+ catch (_e) {
95
110
  return undefined;
96
111
  }
97
112
  });
98
- const verifyWallet = (environmentId_3, _e) => _tslib.__awaiter(void 0, [environmentId_3, _e], void 0, function* (environmentId, { messageToSign, signedMessage, publicWalletAddress, chain, walletName, walletProvider, captchaToken, network, oauth, additionalWalletAddresses, }) {
113
+ const verifyWallet = (environmentId_3, _f) => _tslib.__awaiter(void 0, [environmentId_3, _f], void 0, function* (environmentId, { messageToSign, signedMessage, publicWalletAddress, chain, walletName, walletProvider, captchaToken, network, oauth, additionalWalletAddresses, }) {
99
114
  const verifyRequest = sdkApiCore.VerifyRequestFromJSON({
100
115
  additionalWalletAddresses,
101
116
  captchaToken,
@@ -140,6 +155,7 @@ const verifyWallet = (environmentId_3, _e) => _tslib.__awaiter(void 0, [environm
140
155
  });
141
156
 
142
157
  exports.linkWallet = linkWallet;
158
+ exports.storeSelectedWallet = storeSelectedWallet;
143
159
  exports.transferWallet = transferWallet;
144
160
  exports.unlinkWallet = unlinkWallet;
145
161
  exports.verifyWallet = verifyWallet;
@@ -1,5 +1,9 @@
1
1
  import { VerifyResponse } from '@dynamic-labs/sdk-api-core';
2
2
  import { VerifyWallet } from '../../../shared/types';
3
+ export declare const storeSelectedWallet: ({ environmentId, walletId, }: {
4
+ environmentId: string;
5
+ walletId: string;
6
+ }, userJwt: string) => Promise<VerifyResponse | undefined>;
3
7
  export declare const linkWallet: (environmentId: string, { messageToSign, network, signedMessage, publicWalletAddress, chain, walletName, walletProvider, additionalWalletAddresses, backup, password, passwordSource, }: VerifyWallet, userJwt: string) => Promise<VerifyResponse | undefined>;
4
8
  export declare const unlinkWallet: ({ environmentId, primaryWalletId, walletId, }: {
5
9
  environmentId: string;
@@ -15,7 +15,22 @@ import '../../../shared/utils/classes/storage/localStorage.js';
15
15
  import '../../../shared/consts/index.js';
16
16
  import { sdkApi } from '../api.js';
17
17
 
18
- const linkWallet = (environmentId_1, _a, userJwt_1) => __awaiter(void 0, [environmentId_1, _a, userJwt_1], void 0, function* (environmentId, { messageToSign, network, signedMessage, publicWalletAddress, chain, walletName, walletProvider, additionalWalletAddresses, backup, password, passwordSource, }, userJwt) {
18
+ const storeSelectedWallet = (_a, userJwt_1) => __awaiter(void 0, [_a, userJwt_1], void 0, function* ({ environmentId, walletId, }, userJwt) {
19
+ try {
20
+ const response = yield sdkApi(userJwt).selectUserWallet({
21
+ environmentId,
22
+ userWalletSelectionRequest: {
23
+ walletId,
24
+ },
25
+ });
26
+ return response;
27
+ }
28
+ catch (e) {
29
+ logger.error('error storing selected wallet', e);
30
+ return undefined;
31
+ }
32
+ });
33
+ const linkWallet = (environmentId_1, _b, userJwt_2) => __awaiter(void 0, [environmentId_1, _b, userJwt_2], void 0, function* (environmentId, { messageToSign, network, signedMessage, publicWalletAddress, chain, walletName, walletProvider, additionalWalletAddresses, backup, password, passwordSource, }, userJwt) {
19
34
  const verifyRequest = VerifyRequestFromJSON({
20
35
  additionalWalletAddresses,
21
36
  backup,
@@ -53,7 +68,7 @@ const linkWallet = (environmentId_1, _a, userJwt_1) => __awaiter(void 0, [enviro
53
68
  return undefined;
54
69
  }
55
70
  });
56
- const unlinkWallet = (_b, userJwt_2) => __awaiter(void 0, [_b, userJwt_2], void 0, function* ({ environmentId, primaryWalletId, walletId, }, userJwt) {
71
+ const unlinkWallet = (_c, userJwt_3) => __awaiter(void 0, [_c, userJwt_3], void 0, function* ({ environmentId, primaryWalletId, walletId, }, userJwt) {
57
72
  try {
58
73
  const response = yield sdkApi(userJwt).verifyUnlink({
59
74
  environmentId,
@@ -68,7 +83,7 @@ const unlinkWallet = (_b, userJwt_2) => __awaiter(void 0, [_b, userJwt_2], void
68
83
  return undefined;
69
84
  }
70
85
  });
71
- const transferWallet = (environmentId_2, _c, userJwt_3) => __awaiter(void 0, [environmentId_2, _c, userJwt_3], void 0, function* (environmentId, { network, messageToSign, signedMessage, publicWalletAddress, chain, walletName, walletProvider, skipEmptyAccountCheck = false, }, userJwt) {
86
+ const transferWallet = (environmentId_2, _d, userJwt_4) => __awaiter(void 0, [environmentId_2, _d, userJwt_4], void 0, function* (environmentId, { network, messageToSign, signedMessage, publicWalletAddress, chain, walletName, walletProvider, skipEmptyAccountCheck = false, }, userJwt) {
72
87
  // We should find a better way to do this than force type casting
73
88
  const verifyRequest = {
74
89
  chain,
@@ -87,11 +102,11 @@ const transferWallet = (environmentId_2, _c, userJwt_3) => __awaiter(void 0, [en
87
102
  });
88
103
  return response;
89
104
  }
90
- catch (_d) {
105
+ catch (_e) {
91
106
  return undefined;
92
107
  }
93
108
  });
94
- const verifyWallet = (environmentId_3, _e) => __awaiter(void 0, [environmentId_3, _e], void 0, function* (environmentId, { messageToSign, signedMessage, publicWalletAddress, chain, walletName, walletProvider, captchaToken, network, oauth, additionalWalletAddresses, }) {
109
+ const verifyWallet = (environmentId_3, _f) => __awaiter(void 0, [environmentId_3, _f], void 0, function* (environmentId, { messageToSign, signedMessage, publicWalletAddress, chain, walletName, walletProvider, captchaToken, network, oauth, additionalWalletAddresses, }) {
95
110
  const verifyRequest = VerifyRequestFromJSON({
96
111
  additionalWalletAddresses,
97
112
  captchaToken,
@@ -135,4 +150,4 @@ const verifyWallet = (environmentId_3, _e) => __awaiter(void 0, [environmentId_3
135
150
  }
136
151
  });
137
152
 
138
- export { linkWallet, transferWallet, unlinkWallet, verifyWallet };
153
+ export { linkWallet, storeSelectedWallet, transferWallet, unlinkWallet, verifyWallet };
@@ -131,7 +131,7 @@ const useCreateDynamicEmbeddedWalletMutation = () => {
131
131
  }
132
132
  setUser(updateJWTAndCreateUserProfile.updateJWTAndCreateUserProfile(signersResponse.jwt, signersResponse.minifiedJwt));
133
133
  setShowAuthFlow(false, { performMultiWalletChecks: false });
134
- dynamicEvents.dynamicEvents.emit('embeddedWalletCreated', passkeyWallet, turnkeyVerifiedCredentials, authToken);
134
+ dynamicEvents.dynamicEvents.emit('embeddedWalletCreated', passkeyWallet, turnkeyVerifiedCredentials, signersResponse.jwt);
135
135
  }
136
136
  catch (err) {
137
137
  setError(err);
@@ -127,7 +127,7 @@ const useCreateDynamicEmbeddedWalletMutation = () => {
127
127
  }
128
128
  setUser(updateJWTAndCreateUserProfile(signersResponse.jwt, signersResponse.minifiedJwt));
129
129
  setShowAuthFlow(false, { performMultiWalletChecks: false });
130
- dynamicEvents.emit('embeddedWalletCreated', passkeyWallet, turnkeyVerifiedCredentials, authToken);
130
+ dynamicEvents.emit('embeddedWalletCreated', passkeyWallet, turnkeyVerifiedCredentials, signersResponse.jwt);
131
131
  }
132
132
  catch (err) {
133
133
  setError(err);
@@ -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 jwtVerifiedCredential = yield linkCoinbaseMPCWallet({
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: jwtVerifiedCredential.id,
163
+ id: newSelectedCredentialWallet.id,
164
164
  };
165
- dynamicEvents.dynamicEvents.emit('embeddedWalletCreated', coinbaseMPCWallet, jwtVerifiedCredential, jwt);
165
+ dynamicEvents.dynamicEvents.emit('embeddedWalletCreated', coinbaseMPCWallet, newSelectedCredentialWallet, authToken);
166
166
  return coinbaseMPCWallet;
167
167
  }
168
168
  catch (error) {
@@ -124,7 +124,7 @@ const useCoinbaseMPC = () => {
124
124
  setPrimaryWalletId(newSelectedCredentialWallet.id);
125
125
  setUser(user);
126
126
  connector.setVerifiedCredentials(user.verifiedCredentials);
127
- return newSelectedCredentialWallet;
127
+ return { authToken: response === null || response === void 0 ? void 0 : response.jwt, newSelectedCredentialWallet };
128
128
  }), [
129
129
  appName,
130
130
  consumeNonce,
@@ -143,7 +143,7 @@ const useCoinbaseMPC = () => {
143
143
  : PasswordSourceTypeEnum.Dynamic;
144
144
  try {
145
145
  const backupCode = yield connector.generateWallet(source, initialWalletPassword);
146
- const jwtVerifiedCredential = yield linkCoinbaseMPCWallet({
146
+ const { authToken, newSelectedCredentialWallet } = yield linkCoinbaseMPCWallet({
147
147
  backupCode,
148
148
  connector,
149
149
  jwt,
@@ -156,9 +156,9 @@ const useCoinbaseMPC = () => {
156
156
  chain: (connector === null || connector === void 0 ? void 0 : connector.connectedChain) || '',
157
157
  connected: true,
158
158
  connector,
159
- id: jwtVerifiedCredential.id,
159
+ id: newSelectedCredentialWallet.id,
160
160
  };
161
- dynamicEvents.emit('embeddedWalletCreated', coinbaseMPCWallet, jwtVerifiedCredential, jwt);
161
+ dynamicEvents.emit('embeddedWalletCreated', coinbaseMPCWallet, newSelectedCredentialWallet, authToken);
162
162
  return coinbaseMPCWallet;
163
163
  }
164
164
  catch (error) {
@@ -312,7 +312,7 @@ const useSecureEnclaveEmbeddedWallet = () => {
312
312
  if (isSessionActive) {
313
313
  throw new utils.DynamicError('Session is active. No need to create a new one', errors.ACTIVE_SESSION);
314
314
  }
315
- const publicKey = yield turnkeyAuthenticatorHandler.initRecovery('email', turnkeyAuthIframeContainerRef.current, 'dyn-turnkey-auth-element-id', getEmbeddedWalletSessionExpiration.getEmbeddedWalletSessionExpiration((_x = projectSettings === null || projectSettings === void 0 ? void 0 : projectSettings.sdk.embeddedWallets) === null || _x === void 0 ? void 0 : _x.sessionKeyDuration));
315
+ 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));
316
316
  if (!publicKey) {
317
317
  throw new utils.DynamicError(errors.ERROR_SENDING_CODE);
318
318
  }
@@ -308,7 +308,7 @@ const useSecureEnclaveEmbeddedWallet = () => {
308
308
  if (isSessionActive) {
309
309
  throw new DynamicError('Session is active. No need to create a new one', ACTIVE_SESSION);
310
310
  }
311
- const publicKey = yield turnkeyAuthenticatorHandler.initRecovery('email', turnkeyAuthIframeContainerRef.current, 'dyn-turnkey-auth-element-id', getEmbeddedWalletSessionExpiration((_x = projectSettings === null || projectSettings === void 0 ? void 0 : projectSettings.sdk.embeddedWallets) === null || _x === void 0 ? void 0 : _x.sessionKeyDuration));
311
+ const publicKey = yield turnkeyAuthenticatorHandler.initRecovery('email', turnkeyAuthIframeContainerRef.current, iframeElementId, getEmbeddedWalletSessionExpiration((_x = projectSettings === null || projectSettings === void 0 ? void 0 : projectSettings.sdk.embeddedWallets) === null || _x === void 0 ? void 0 : _x.sessionKeyDuration));
312
312
  if (!publicKey) {
313
313
  throw new DynamicError(ERROR_SENDING_CODE);
314
314
  }
@@ -3,6 +3,7 @@
3
3
 
4
4
  Object.defineProperty(exports, '__esModule', { value: true });
5
5
 
6
+ var _tslib = require('../../../../../_virtual/_tslib.cjs');
6
7
  var React = require('react');
7
8
  require('@dynamic-labs/sdk-api-core');
8
9
  require('../../../shared/logger.cjs');
@@ -19,19 +20,27 @@ var useLocalStorage = require('../../../shared/utils/hooks/useLocalStorage/useLo
19
20
  require('@dynamic-labs/utils');
20
21
  require('../../../shared/consts/index.cjs');
21
22
  var primaryWalletIdValidator = require('../useWalletConnectors/utils/primaryWalletIdValidator/primaryWalletIdValidator.cjs');
22
- require('../../../../../_virtual/_tslib.cjs');
23
23
  require('@dynamic-labs/multi-wallet');
24
24
  require('react-international-phone');
25
25
  require('viem');
26
26
  require('viem/chains');
27
27
  require('../../../config/ApiEndpoint.cjs');
28
28
  require('../../../locale/locale.cjs');
29
+ var wallets = require('../../../data/api/wallets/wallets.cjs');
30
+ var updateJWTAndCreateUserProfile = require('../../functions/updateJWTAndCreateUserProfile/updateJWTAndCreateUserProfile.cjs');
29
31
 
30
- const usePrimaryWalletId = () => {
32
+ const usePrimaryWalletId = ({ minAuthToken, environmentId, setUser, }) => {
31
33
  const [primaryWalletId, setPrimaryWalletIdState, clearPrimaryWalletId] = useLocalStorage.useLocalStorage(localStorage.PRIMARY_WALLET_ID, undefined, primaryWalletIdValidator.primaryWalletIdValidator);
32
- const setPrimaryWalletId = React.useCallback((walletId) => {
34
+ const setPrimaryWalletId = React.useCallback((walletId) => _tslib.__awaiter(void 0, void 0, void 0, function* () {
33
35
  setPrimaryWalletIdState(walletId);
34
- }, [setPrimaryWalletIdState]);
36
+ if (minAuthToken) {
37
+ const response = yield wallets.storeSelectedWallet({ environmentId, walletId }, minAuthToken);
38
+ // only update userProfile, authToken, and minAuthToken when response is valid from storeSelectedWallet
39
+ if (response) {
40
+ setUser(updateJWTAndCreateUserProfile.updateJWTAndCreateUserProfile(response.jwt, response.minifiedJwt));
41
+ }
42
+ }
43
+ }), [setPrimaryWalletIdState]);
35
44
  return {
36
45
  clearPrimaryWalletId,
37
46
  primaryWalletId,
@@ -1,5 +1,13 @@
1
- export declare const usePrimaryWalletId: () => {
1
+ import { Dispatch, SetStateAction } from 'react';
2
+ import { UserProfile } from '@dynamic-labs/types';
3
+ type Props = {
4
+ setUser: Dispatch<SetStateAction<UserProfile | undefined>>;
5
+ environmentId: string;
6
+ minAuthToken: string | undefined;
7
+ };
8
+ export declare const usePrimaryWalletId: ({ minAuthToken, environmentId, setUser, }: Props) => {
2
9
  clearPrimaryWalletId: () => void;
3
10
  primaryWalletId: string | undefined;
4
- setPrimaryWalletId: (walletId: string) => void;
11
+ setPrimaryWalletId: (walletId: string) => Promise<void>;
5
12
  };
13
+ export {};
@@ -1,4 +1,5 @@
1
1
  'use client'
2
+ import { __awaiter } from '../../../../../_virtual/_tslib.js';
2
3
  import { useCallback } from 'react';
3
4
  import '@dynamic-labs/sdk-api-core';
4
5
  import '../../../shared/logger.js';
@@ -15,19 +16,27 @@ import { useLocalStorage } from '../../../shared/utils/hooks/useLocalStorage/use
15
16
  import '@dynamic-labs/utils';
16
17
  import '../../../shared/consts/index.js';
17
18
  import { primaryWalletIdValidator } from '../useWalletConnectors/utils/primaryWalletIdValidator/primaryWalletIdValidator.js';
18
- import '../../../../../_virtual/_tslib.js';
19
19
  import '@dynamic-labs/multi-wallet';
20
20
  import 'react-international-phone';
21
21
  import 'viem';
22
22
  import 'viem/chains';
23
23
  import '../../../config/ApiEndpoint.js';
24
24
  import '../../../locale/locale.js';
25
+ import { storeSelectedWallet } from '../../../data/api/wallets/wallets.js';
26
+ import { updateJWTAndCreateUserProfile } from '../../functions/updateJWTAndCreateUserProfile/updateJWTAndCreateUserProfile.js';
25
27
 
26
- const usePrimaryWalletId = () => {
28
+ const usePrimaryWalletId = ({ minAuthToken, environmentId, setUser, }) => {
27
29
  const [primaryWalletId, setPrimaryWalletIdState, clearPrimaryWalletId] = useLocalStorage(PRIMARY_WALLET_ID, undefined, primaryWalletIdValidator);
28
- const setPrimaryWalletId = useCallback((walletId) => {
30
+ const setPrimaryWalletId = useCallback((walletId) => __awaiter(void 0, void 0, void 0, function* () {
29
31
  setPrimaryWalletIdState(walletId);
30
- }, [setPrimaryWalletIdState]);
32
+ if (minAuthToken) {
33
+ const response = yield storeSelectedWallet({ environmentId, walletId }, minAuthToken);
34
+ // only update userProfile, authToken, and minAuthToken when response is valid from storeSelectedWallet
35
+ if (response) {
36
+ setUser(updateJWTAndCreateUserProfile(response.jwt, response.minifiedJwt));
37
+ }
38
+ }
39
+ }), [setPrimaryWalletIdState]);
31
40
  return {
32
41
  clearPrimaryWalletId,
33
42
  primaryWalletId,
@@ -21,7 +21,7 @@ require('@dynamic-labs/sdk-api-core');
21
21
  require('../../shared/logger.cjs');
22
22
  require('@dynamic-labs/iconic');
23
23
  require('@dynamic-labs/wallet-connector-core');
24
- var ViewContext = require('../../context/ViewContext/ViewContext.cjs');
24
+ require('../../context/ViewContext/ViewContext.cjs');
25
25
  var localStorage = require('../../shared/utils/classes/storage/localStorage.cjs');
26
26
  require('@dynamic-labs/utils');
27
27
  require('../../shared/consts/index.cjs');
@@ -83,7 +83,6 @@ require('../TransactionConfirmationView/helpers/transactionErrorMessage.cjs');
83
83
  require('../../widgets/DynamicWidget/views/ManagePasskeysWidgetView/PasskeyCard/PasskeyCard.cjs');
84
84
  var useInternalDynamicContext = require('../../context/DynamicContext/useDynamicContext/useInternalDynamicContext.cjs');
85
85
  var index = require('../../utils/functions/walletFilters/index.cjs');
86
- var isUserLinkingWallet = require('../../shared/utils/functions/isUserLinkingWallet/isUserLinkingWallet.cjs');
87
86
  var SearchNotFoundMessage = require('./SearchNotFoundMessage/SearchNotFoundMessage.cjs');
88
87
  var WalletListGridTabs = require('./WalletListGridTabs/WalletListGridTabs.cjs');
89
88
  var useTabState = require('./hooks/useTabState.cjs');
@@ -93,10 +92,8 @@ var getEffectiveRecommendedWallets = require('./utils/getEffectiveRecommendedWal
93
92
  localStorage.LocalStorage.setToLS(localStorage$1.WALLET_PICKER_SEARCH_KEY, '');
94
93
  const WalletList = ({ isWalletConnectList = false, }) => {
95
94
  var _a;
96
- const { walletsFilter, signWithEmailWalletName, walletConnectorOptions, projectSettings, defaultNumberOfWalletsToShow, bridgeChainsToConnect, connectedWallets, authMode, multiWallet, user, recommendedWallets, } = useInternalDynamicContext.useInternalDynamicContext();
97
- const { view } = ViewContext.useViewContext();
95
+ const { walletsFilter, signWithEmailWalletName, walletConnectorOptions, projectSettings, defaultNumberOfWalletsToShow, bridgeChainsToConnect, connectedWallets, authMode, multiWallet, recommendedWallets, } = useInternalDynamicContext.useInternalDynamicContext();
98
96
  const { selectedTabIndex, setSelectedTabIndex, selectedTabSettings, tabsItems, } = useTabState.useTabState();
99
- const isLinkingWallet = isUserLinkingWallet.isUserLinkingWallet(user, view.type, false);
100
97
  const { walletBook: walletBook$1 } = walletBook.useWalletBookContext();
101
98
  const { error } = ErrorContext.useErrorContext();
102
99
  const { showDefaultFooter } = useAuthLayoutChecks.useAuthLayoutChecks();
@@ -126,7 +123,7 @@ const WalletList = ({ isWalletConnectList = false, }) => {
126
123
  const isSearchEnabled = Boolean(filterValue) ||
127
124
  (numberOfWallets > defaultNumberOfWalletsToShow &&
128
125
  walletsList.length !== numberOfWallets);
129
- const isTabsEnabled = Boolean((tabsItems === null || tabsItems === void 0 ? void 0 : tabsItems.length) && !isLinkingWallet);
126
+ const isTabsEnabled = Boolean(tabsItems === null || tabsItems === void 0 ? void 0 : tabsItems.length);
130
127
  const walletListScrollRef = React.useRef(null);
131
128
  /* istanbul ignore next */
132
129
  const handleScroll = () => {
@@ -17,7 +17,7 @@ import '@dynamic-labs/sdk-api-core';
17
17
  import '../../shared/logger.js';
18
18
  import '@dynamic-labs/iconic';
19
19
  import '@dynamic-labs/wallet-connector-core';
20
- import { useViewContext } from '../../context/ViewContext/ViewContext.js';
20
+ import '../../context/ViewContext/ViewContext.js';
21
21
  import { LocalStorage } from '../../shared/utils/classes/storage/localStorage.js';
22
22
  import '@dynamic-labs/utils';
23
23
  import '../../shared/consts/index.js';
@@ -79,7 +79,6 @@ import '../TransactionConfirmationView/helpers/transactionErrorMessage.js';
79
79
  import '../../widgets/DynamicWidget/views/ManagePasskeysWidgetView/PasskeyCard/PasskeyCard.js';
80
80
  import { useInternalDynamicContext } from '../../context/DynamicContext/useDynamicContext/useInternalDynamicContext.js';
81
81
  import { FilterBridgeChainsName } from '../../utils/functions/walletFilters/index.js';
82
- import { isUserLinkingWallet } from '../../shared/utils/functions/isUserLinkingWallet/isUserLinkingWallet.js';
83
82
  import { SearchNotFoundMessage } from './SearchNotFoundMessage/SearchNotFoundMessage.js';
84
83
  import { WalletListGridTabs } from './WalletListGridTabs/WalletListGridTabs.js';
85
84
  import { useTabState } from './hooks/useTabState.js';
@@ -89,10 +88,8 @@ import { getEffectiveRecommendedWallets } from './utils/getEffectiveRecommendedW
89
88
  LocalStorage.setToLS(WALLET_PICKER_SEARCH_KEY, '');
90
89
  const WalletList = ({ isWalletConnectList = false, }) => {
91
90
  var _a;
92
- const { walletsFilter, signWithEmailWalletName, walletConnectorOptions, projectSettings, defaultNumberOfWalletsToShow, bridgeChainsToConnect, connectedWallets, authMode, multiWallet, user, recommendedWallets, } = useInternalDynamicContext();
93
- const { view } = useViewContext();
91
+ const { walletsFilter, signWithEmailWalletName, walletConnectorOptions, projectSettings, defaultNumberOfWalletsToShow, bridgeChainsToConnect, connectedWallets, authMode, multiWallet, recommendedWallets, } = useInternalDynamicContext();
94
92
  const { selectedTabIndex, setSelectedTabIndex, selectedTabSettings, tabsItems, } = useTabState();
95
- const isLinkingWallet = isUserLinkingWallet(user, view.type, false);
96
93
  const { walletBook } = useWalletBookContext();
97
94
  const { error } = useErrorContext();
98
95
  const { showDefaultFooter } = useAuthLayoutChecks();
@@ -122,7 +119,7 @@ const WalletList = ({ isWalletConnectList = false, }) => {
122
119
  const isSearchEnabled = Boolean(filterValue) ||
123
120
  (numberOfWallets > defaultNumberOfWalletsToShow &&
124
121
  walletsList.length !== numberOfWallets);
125
- const isTabsEnabled = Boolean((tabsItems === null || tabsItems === void 0 ? void 0 : tabsItems.length) && !isLinkingWallet);
122
+ const isTabsEnabled = Boolean(tabsItems === null || tabsItems === void 0 ? void 0 : tabsItems.length);
126
123
  const walletListScrollRef = useRef(null);
127
124
  /* istanbul ignore next */
128
125
  const handleScroll = () => {
@@ -5,9 +5,9 @@ Object.defineProperty(exports, '__esModule', { value: true });
5
5
 
6
6
  var _tslib = require('../../../../_virtual/_tslib.cjs');
7
7
  var jsxRuntime = require('react/jsx-runtime');
8
- var React = require('react');
9
8
  var reactI18next = require('react-i18next');
10
9
  var walletBook = require('@dynamic-labs/wallet-book');
10
+ require('react');
11
11
  require('../../events/dynamicEvents.cjs');
12
12
  require('@dynamic-labs/utils');
13
13
  require('../../context/DynamicContext/DynamicContext.cjs');
@@ -83,14 +83,8 @@ require('../LoginView/sections/PhoneNumberSignInSection/PhoneNumberSignInSection
83
83
 
84
84
  const iconSize = 64;
85
85
  const WalletLockedView = () => {
86
- const { handleLogOut, primaryWallet, setShowAuthFlow, appName, authToken } = useInternalDynamicContext.useInternalDynamicContext();
86
+ const { handleLogOut, primaryWallet, setShowAuthFlow, appName } = useInternalDynamicContext.useInternalDynamicContext();
87
87
  const { t } = reactI18next.useTranslation();
88
- React.useEffect(() => {
89
- // when there is no valid session, we want to log user out
90
- if (!authToken) {
91
- handleLogOut();
92
- }
93
- }, [authToken, handleLogOut]);
94
88
  if (!primaryWallet) {
95
89
  return null;
96
90
  }
@@ -1,9 +1,9 @@
1
1
  'use client'
2
2
  import { __awaiter } from '../../../../_virtual/_tslib.js';
3
3
  import { jsx, jsxs } from 'react/jsx-runtime';
4
- import { useEffect } from 'react';
5
4
  import { useTranslation } from 'react-i18next';
6
5
  import { WalletIcon } from '@dynamic-labs/wallet-book';
6
+ import 'react';
7
7
  import '../../events/dynamicEvents.js';
8
8
  import '@dynamic-labs/utils';
9
9
  import '../../context/DynamicContext/DynamicContext.js';
@@ -79,14 +79,8 @@ import '../LoginView/sections/PhoneNumberSignInSection/PhoneNumberSignInSection.
79
79
 
80
80
  const iconSize = 64;
81
81
  const WalletLockedView = () => {
82
- const { handleLogOut, primaryWallet, setShowAuthFlow, appName, authToken } = useInternalDynamicContext();
82
+ const { handleLogOut, primaryWallet, setShowAuthFlow, appName } = useInternalDynamicContext();
83
83
  const { t } = useTranslation();
84
- useEffect(() => {
85
- // when there is no valid session, we want to log user out
86
- if (!authToken) {
87
- handleLogOut();
88
- }
89
- }, [authToken, handleLogOut]);
90
84
  if (!primaryWallet) {
91
85
  return null;
92
86
  }
@@ -78,7 +78,7 @@ var useInternalDynamicContext = require('../../../../context/DynamicContext/useD
78
78
  const useFetchNameService = (address) => {
79
79
  const { getNameService, network } = useInternalDynamicContext.useInternalDynamicContext();
80
80
  const { data: nameService } = usePromise.usePromise(() => getNameService(address), {
81
- deps: [address, network],
81
+ deps: [address, network, getNameService],
82
82
  });
83
83
  return nameService;
84
84
  };
@@ -74,7 +74,7 @@ import { useInternalDynamicContext } from '../../../../context/DynamicContext/us
74
74
  const useFetchNameService = (address) => {
75
75
  const { getNameService, network } = useInternalDynamicContext();
76
76
  const { data: nameService } = usePromise(() => getNameService(address), {
77
- deps: [address, network],
77
+ deps: [address, network, getNameService],
78
78
  });
79
79
  return nameService;
80
80
  };