@dynamic-labs/sdk-react-core 4.44.1 → 4.44.2

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 CHANGED
@@ -1,4 +1,11 @@
1
1
 
2
+ ### [4.44.2](https://github.com/dynamic-labs/dynamic-auth/compare/v4.44.1...v4.44.2) (2025-11-08)
3
+
4
+
5
+ ### Bug Fixes
6
+
7
+ * adds hCaptcha token on telegram login ([#9848](https://github.com/dynamic-labs/dynamic-auth/issues/9848)) ([962e9b9](https://github.com/dynamic-labs/dynamic-auth/commit/962e9b95e7df1a0f321076b317ab80dd35cd0e72))
8
+
2
9
  ### [4.44.1](https://github.com/dynamic-labs/dynamic-auth/compare/v4.44.0...v4.44.1) (2025-11-06)
3
10
 
4
11
 
package/package.cjs CHANGED
@@ -3,9 +3,9 @@
3
3
 
4
4
  Object.defineProperty(exports, '__esModule', { value: true });
5
5
 
6
- var version = "4.44.1";
6
+ var version = "4.44.2";
7
7
  var dependencies = {
8
- "@dynamic-labs/sdk-api-core": "0.0.818",
8
+ "@dynamic-labs/sdk-api-core": "0.0.821",
9
9
  "@dynamic-labs-sdk/client": "0.1.0-alpha.28",
10
10
  "@hcaptcha/react-hcaptcha": "1.4.4",
11
11
  "@thumbmarkjs/thumbmarkjs": "0.16.0",
package/package.js CHANGED
@@ -1,7 +1,7 @@
1
1
  'use client'
2
- var version = "4.44.1";
2
+ var version = "4.44.2";
3
3
  var dependencies = {
4
- "@dynamic-labs/sdk-api-core": "0.0.818",
4
+ "@dynamic-labs/sdk-api-core": "0.0.821",
5
5
  "@dynamic-labs-sdk/client": "0.1.0-alpha.28",
6
6
  "@hcaptcha/react-hcaptcha": "1.4.4",
7
7
  "@thumbmarkjs/thumbmarkjs": "0.16.0",
package/package.json CHANGED
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "name": "@dynamic-labs/sdk-react-core",
3
- "version": "4.44.1",
3
+ "version": "4.44.2",
4
4
  "dependencies": {
5
- "@dynamic-labs/sdk-api-core": "0.0.818",
5
+ "@dynamic-labs/sdk-api-core": "0.0.821",
6
6
  "@dynamic-labs-sdk/client": "0.1.0-alpha.28",
7
7
  "@hcaptcha/react-hcaptcha": "1.4.4",
8
8
  "@thumbmarkjs/thumbmarkjs": "0.16.0",
@@ -15,17 +15,17 @@
15
15
  "yup": "0.32.11",
16
16
  "react-international-phone": "4.5.0",
17
17
  "bs58": "5.0.0",
18
- "@dynamic-labs/assert-package-version": "4.44.1",
19
- "@dynamic-labs/iconic": "4.44.1",
20
- "@dynamic-labs/locale": "4.44.1",
21
- "@dynamic-labs/logger": "4.44.1",
22
- "@dynamic-labs/multi-wallet": "4.44.1",
23
- "@dynamic-labs/rpc-providers": "4.44.1",
24
- "@dynamic-labs/store": "4.44.1",
25
- "@dynamic-labs/types": "4.44.1",
26
- "@dynamic-labs/utils": "4.44.1",
27
- "@dynamic-labs/wallet-book": "4.44.1",
28
- "@dynamic-labs/wallet-connector-core": "4.44.1",
18
+ "@dynamic-labs/assert-package-version": "4.44.2",
19
+ "@dynamic-labs/iconic": "4.44.2",
20
+ "@dynamic-labs/locale": "4.44.2",
21
+ "@dynamic-labs/logger": "4.44.2",
22
+ "@dynamic-labs/multi-wallet": "4.44.2",
23
+ "@dynamic-labs/rpc-providers": "4.44.2",
24
+ "@dynamic-labs/store": "4.44.2",
25
+ "@dynamic-labs/types": "4.44.2",
26
+ "@dynamic-labs/utils": "4.44.2",
27
+ "@dynamic-labs/wallet-book": "4.44.2",
28
+ "@dynamic-labs/wallet-connector-core": "4.44.2",
29
29
  "eventemitter3": "5.0.1"
30
30
  },
31
31
  "devDependencies": {
@@ -1,3 +1,3 @@
1
1
  export declare const verifyTotpMfaDevice: ({ code }: {
2
2
  code: string;
3
- }) => Promise<import("@dynamic-labs/sdk-api-core").MFADevice>;
3
+ }) => Promise<import("@dynamic-labs-sdk/client").MFADevice>;
@@ -1,6 +1,6 @@
1
1
  'use client'
2
2
  import { jsx } from 'react/jsx-runtime';
3
- import { createContext, useState, useCallback, useMemo, useContext } from 'react';
3
+ import { createContext, useContext, useState, useCallback, useMemo } from 'react';
4
4
  import { useViewContext } from '../ViewContext/ViewContext.js';
5
5
  import '@dynamic-labs/iconic';
6
6
  import '@dynamic-labs/wallet-connector-core';
@@ -117,7 +117,7 @@ require('../../../shared/utils/functions/getInitialUrl/getInitialUrl.cjs');
117
117
  var useInternalDynamicContext = require('../../../context/DynamicContext/useDynamicContext/useInternalDynamicContext/useInternalDynamicContext.cjs');
118
118
 
119
119
  const dynamicWaasKey = 'dynamicwaas';
120
- const configWaasWalletConnector = ({ walletConnector, environmentId, apiBaseUrl, authToken, relayUrl, authMode = 'header', getSignedSessionId, getMfaToken, }) => {
120
+ const configWaasWalletConnector = ({ walletConnector, environmentId, apiBaseUrl, relayUrl, authMode = 'header', getSignedSessionId, getMfaToken, }) => {
121
121
  var _a;
122
122
  walletConnector.setEnvironmentId(environmentId);
123
123
  walletConnector.setBaseApiUrl((_a = (apiBaseUrl || apiUrl.DEFAULT_WAAS_API_URL)) === null || _a === void 0 ? void 0 : _a.replace('/api/v0', ''));
@@ -127,7 +127,7 @@ const configWaasWalletConnector = ({ walletConnector, environmentId, apiBaseUrl,
127
127
  }
128
128
  else {
129
129
  walletConnector.setWaasAuthMode('header');
130
- walletConnector.setGetAuthTokenFunction(() => authToken !== null && authToken !== void 0 ? authToken : '');
130
+ walletConnector.setGetAuthTokenFunction(getMinAuthToken.getMinAuthToken);
131
131
  }
132
132
  walletConnector.setGetSignedSessionIdFunction(getSignedSessionId);
133
133
  walletConnector.setRelayUrl(relayUrl);
@@ -173,7 +173,6 @@ const useDynamicWaas = () => {
173
173
  const configuredWalletConnector = configWaasWalletConnector({
174
174
  apiBaseUrl: apiBaseUrl || apiUrl.DEFAULT_WAAS_API_URL,
175
175
  authMode: isCookieAuthEnabled ? 'cookie' : 'header',
176
- authToken,
177
176
  environmentId,
178
177
  getMfaToken,
179
178
  getSignedSessionId,
@@ -1,11 +1,10 @@
1
1
  import { ChainEnum, MFAAction } from '@dynamic-labs/sdk-api-core';
2
2
  import { IDynamicWaasConnector, Wallet, WalletConnectorCore } from '@dynamic-labs/wallet-connector-core';
3
3
  import { WalletDelegationStatus } from '../useWalletDelegation/useWalletDelegation';
4
- export declare const configWaasWalletConnector: ({ walletConnector, environmentId, apiBaseUrl, authToken, relayUrl, authMode, getSignedSessionId, getMfaToken, }: {
4
+ export declare const configWaasWalletConnector: ({ walletConnector, environmentId, apiBaseUrl, relayUrl, authMode, getSignedSessionId, getMfaToken, }: {
5
5
  walletConnector: IDynamicWaasConnector;
6
6
  environmentId: string;
7
7
  apiBaseUrl: string;
8
- authToken: string | undefined;
9
8
  relayUrl: string;
10
9
  authMode?: 'cookie' | 'header';
11
10
  getSignedSessionId: () => Promise<string>;
@@ -113,7 +113,7 @@ import '../../../shared/utils/functions/getInitialUrl/getInitialUrl.js';
113
113
  import { useInternalDynamicContext } from '../../../context/DynamicContext/useDynamicContext/useInternalDynamicContext/useInternalDynamicContext.js';
114
114
 
115
115
  const dynamicWaasKey = 'dynamicwaas';
116
- const configWaasWalletConnector = ({ walletConnector, environmentId, apiBaseUrl, authToken, relayUrl, authMode = 'header', getSignedSessionId, getMfaToken, }) => {
116
+ const configWaasWalletConnector = ({ walletConnector, environmentId, apiBaseUrl, relayUrl, authMode = 'header', getSignedSessionId, getMfaToken, }) => {
117
117
  var _a;
118
118
  walletConnector.setEnvironmentId(environmentId);
119
119
  walletConnector.setBaseApiUrl((_a = (apiBaseUrl || DEFAULT_WAAS_API_URL)) === null || _a === void 0 ? void 0 : _a.replace('/api/v0', ''));
@@ -123,7 +123,7 @@ const configWaasWalletConnector = ({ walletConnector, environmentId, apiBaseUrl,
123
123
  }
124
124
  else {
125
125
  walletConnector.setWaasAuthMode('header');
126
- walletConnector.setGetAuthTokenFunction(() => authToken !== null && authToken !== void 0 ? authToken : '');
126
+ walletConnector.setGetAuthTokenFunction(getMinAuthToken);
127
127
  }
128
128
  walletConnector.setGetSignedSessionIdFunction(getSignedSessionId);
129
129
  walletConnector.setRelayUrl(relayUrl);
@@ -169,7 +169,6 @@ const useDynamicWaas = () => {
169
169
  const configuredWalletConnector = configWaasWalletConnector({
170
170
  apiBaseUrl: apiBaseUrl || DEFAULT_WAAS_API_URL,
171
171
  authMode: isCookieAuthEnabled ? 'cookie' : 'header',
172
- authToken,
173
172
  environmentId,
174
173
  getMfaToken,
175
174
  getSignedSessionId,
@@ -29,7 +29,6 @@ require('@dynamic-labs-sdk/client/core');
29
29
  require('../../../client/client.cjs');
30
30
  require('@dynamic-labs-sdk/client');
31
31
  require('../../../config/ApiEndpoint.cjs');
32
- var getMinAuthToken = require('../../../client/extension/functions/getMinAuthToken/getMinAuthToken.cjs');
33
32
  require('@dynamic-labs/locale');
34
33
  var dynamicContextProps = require('../../../store/state/dynamicContextProps/dynamicContextProps.cjs');
35
34
  require('../../../store/state/primaryWalletId/primaryWalletId.cjs');
@@ -109,7 +108,6 @@ var useClientSessionKeys = require('../useClientSessionKeys/useClientSessionKeys
109
108
 
110
109
  const useSetWalletConnectorFetchers = (walletOptions, environmentId, projectSettings) => {
111
110
  const apiBaseUrl = dynamicContextProps.useApiBaseUrl();
112
- const authToken = getMinAuthToken.getMinAuthToken();
113
111
  const { registerEmbeddedWalletSessionKey, removeSessionKey } = useEmbeddedWalletSessionKeys.useEmbeddedWalletSessionKeys({ environmentId, projectSettings });
114
112
  const { getSignedSessionId } = useClientSessionKeys.useClientSessionKeys();
115
113
  const getMfaToken = useGetMfaToken.useGetMfaToken();
@@ -124,7 +122,6 @@ const useSetWalletConnectorFetchers = (walletOptions, environmentId, projectSett
124
122
  else if (walletConnectorCore.isDynamicWaasConnector(walletOption.walletConnector)) {
125
123
  useDynamicWaas.configWaasWalletConnector({
126
124
  apiBaseUrl: apiBaseUrl !== null && apiBaseUrl !== void 0 ? apiBaseUrl : apiUrl.DEFAULT_WAAS_API_URL,
127
- authToken,
128
125
  environmentId,
129
126
  getMfaToken,
130
127
  getSignedSessionId,
@@ -25,7 +25,6 @@ import '@dynamic-labs-sdk/client/core';
25
25
  import '../../../client/client.js';
26
26
  import '@dynamic-labs-sdk/client';
27
27
  import '../../../config/ApiEndpoint.js';
28
- import { getMinAuthToken } from '../../../client/extension/functions/getMinAuthToken/getMinAuthToken.js';
29
28
  import '@dynamic-labs/locale';
30
29
  import { useApiBaseUrl } from '../../../store/state/dynamicContextProps/dynamicContextProps.js';
31
30
  import '../../../store/state/primaryWalletId/primaryWalletId.js';
@@ -105,7 +104,6 @@ import { useClientSessionKeys } from '../useClientSessionKeys/useClientSessionKe
105
104
 
106
105
  const useSetWalletConnectorFetchers = (walletOptions, environmentId, projectSettings) => {
107
106
  const apiBaseUrl = useApiBaseUrl();
108
- const authToken = getMinAuthToken();
109
107
  const { registerEmbeddedWalletSessionKey, removeSessionKey } = useEmbeddedWalletSessionKeys({ environmentId, projectSettings });
110
108
  const { getSignedSessionId } = useClientSessionKeys();
111
109
  const getMfaToken = useGetMfaToken();
@@ -120,7 +118,6 @@ const useSetWalletConnectorFetchers = (walletOptions, environmentId, projectSett
120
118
  else if (isDynamicWaasConnector(walletOption.walletConnector)) {
121
119
  configWaasWalletConnector({
122
120
  apiBaseUrl: apiBaseUrl !== null && apiBaseUrl !== void 0 ? apiBaseUrl : DEFAULT_WAAS_API_URL,
123
- authToken,
124
121
  environmentId,
125
122
  getMfaToken,
126
123
  getSignedSessionId,
@@ -226,6 +226,7 @@ const useSocialAuth = ({ onSettled, onError, onFarcasterUrl, }) => {
226
226
  if (authMode === 'signin') {
227
227
  if (provider === sdkApiCore.ProviderEnum.Telegram && telegramAuthToken) {
228
228
  const apiCall = () => oauth.telegramSignIn(environmentId, {
229
+ captchaToken,
229
230
  forceCreateUser,
230
231
  sessionPublicKey,
231
232
  telegramAuthToken,
@@ -234,6 +235,7 @@ const useSocialAuth = ({ onSettled, onError, onFarcasterUrl, }) => {
234
235
  }
235
236
  else if (provider === sdkApiCore.ProviderEnum.Telegram) {
236
237
  const apiCall = () => oauth.telegramSignIn(environmentId, {
238
+ captchaToken,
237
239
  code: authCode,
238
240
  sessionPublicKey,
239
241
  state,
@@ -255,6 +257,7 @@ const useSocialAuth = ({ onSettled, onError, onFarcasterUrl, }) => {
255
257
  else {
256
258
  if (provider === sdkApiCore.ProviderEnum.Telegram) {
257
259
  const apiCall = () => oauth.telegramVerify(environmentId, {
260
+ captchaToken,
258
261
  code: authCode,
259
262
  state,
260
263
  });
@@ -222,6 +222,7 @@ const useSocialAuth = ({ onSettled, onError, onFarcasterUrl, }) => {
222
222
  if (authMode === 'signin') {
223
223
  if (provider === ProviderEnum.Telegram && telegramAuthToken) {
224
224
  const apiCall = () => telegramSignIn(environmentId, {
225
+ captchaToken,
225
226
  forceCreateUser,
226
227
  sessionPublicKey,
227
228
  telegramAuthToken,
@@ -230,6 +231,7 @@ const useSocialAuth = ({ onSettled, onError, onFarcasterUrl, }) => {
230
231
  }
231
232
  else if (provider === ProviderEnum.Telegram) {
232
233
  const apiCall = () => telegramSignIn(environmentId, {
234
+ captchaToken,
233
235
  code: authCode,
234
236
  sessionPublicKey,
235
237
  state,
@@ -251,6 +253,7 @@ const useSocialAuth = ({ onSettled, onError, onFarcasterUrl, }) => {
251
253
  else {
252
254
  if (provider === ProviderEnum.Telegram) {
253
255
  const apiCall = () => telegramVerify(environmentId, {
256
+ captchaToken,
254
257
  code: authCode,
255
258
  state,
256
259
  });
@@ -32,7 +32,7 @@ require('../../../store/state/primaryWalletId/primaryWalletId.cjs');
32
32
  require('../../../store/state/connectedWalletsInfo/connectedWalletsInfo.cjs');
33
33
  require('../../../context/DynamicContext/DynamicContext.cjs');
34
34
  require('../../../store/state/loadingAndLifecycle/loadingAndLifecycle.cjs');
35
- require('../../../context/CaptchaContext/CaptchaContext.cjs');
35
+ var CaptchaContext = require('../../../context/CaptchaContext/CaptchaContext.cjs');
36
36
  require('../../../context/ErrorContext/ErrorContext.cjs');
37
37
  require('../../../context/AccessDeniedContext/AccessDeniedContext.cjs');
38
38
  require('../../../context/AccountExistsContext/AccountExistsContext.cjs');
@@ -108,6 +108,7 @@ var useInternalDynamicContext = require('../../../context/DynamicContext/useDyna
108
108
  const useTelegramLogin = () => {
109
109
  const { sdkHasLoaded, user, projectSettings, environmentId } = useInternalDynamicContext.useInternalDynamicContext();
110
110
  const providers = (projectSettings === null || projectSettings === void 0 ? void 0 : projectSettings.providers) || [];
111
+ const { getCaptchaToken } = CaptchaContext.useCaptchaContext();
111
112
  const { completeConnection } = useSocialAuth.useSocialAuth({});
112
113
  const getTelegramAuthTokenFromURL = () => {
113
114
  var _a, _b;
@@ -158,6 +159,7 @@ const useTelegramLogin = () => {
158
159
  }
159
160
  yield completeConnection({
160
161
  authMode: 'signin',
162
+ captchaToken: getCaptchaToken(),
161
163
  forceCreateUser,
162
164
  provider: sdkApiCore.ProviderEnum.Telegram,
163
165
  state: '',
@@ -28,7 +28,7 @@ import '../../../store/state/primaryWalletId/primaryWalletId.js';
28
28
  import '../../../store/state/connectedWalletsInfo/connectedWalletsInfo.js';
29
29
  import '../../../context/DynamicContext/DynamicContext.js';
30
30
  import '../../../store/state/loadingAndLifecycle/loadingAndLifecycle.js';
31
- import '../../../context/CaptchaContext/CaptchaContext.js';
31
+ import { useCaptchaContext } from '../../../context/CaptchaContext/CaptchaContext.js';
32
32
  import '../../../context/ErrorContext/ErrorContext.js';
33
33
  import '../../../context/AccessDeniedContext/AccessDeniedContext.js';
34
34
  import '../../../context/AccountExistsContext/AccountExistsContext.js';
@@ -104,6 +104,7 @@ import { useInternalDynamicContext } from '../../../context/DynamicContext/useDy
104
104
  const useTelegramLogin = () => {
105
105
  const { sdkHasLoaded, user, projectSettings, environmentId } = useInternalDynamicContext();
106
106
  const providers = (projectSettings === null || projectSettings === void 0 ? void 0 : projectSettings.providers) || [];
107
+ const { getCaptchaToken } = useCaptchaContext();
107
108
  const { completeConnection } = useSocialAuth({});
108
109
  const getTelegramAuthTokenFromURL = () => {
109
110
  var _a, _b;
@@ -154,6 +155,7 @@ const useTelegramLogin = () => {
154
155
  }
155
156
  yield completeConnection({
156
157
  authMode: 'signin',
158
+ captchaToken: getCaptchaToken(),
157
159
  forceCreateUser,
158
160
  provider: ProviderEnum.Telegram,
159
161
  state: '',
@@ -11,7 +11,7 @@ require('@dynamic-labs-sdk/client/core');
11
11
  require('../../../client/client.cjs');
12
12
  require('react');
13
13
  require('../../../config/ApiEndpoint.cjs');
14
- require('../../constants/values.cjs');
14
+ var values = require('../../constants/values.cjs');
15
15
  require('@dynamic-labs/multi-wallet');
16
16
  require('react-international-phone');
17
17
  require('../../constants/colors.cjs');
@@ -28,6 +28,7 @@ require('@dynamic-labs/locale');
28
28
  require('../../../store/state/dynamicContextProps/dynamicContextProps.cjs');
29
29
  require('../../../store/state/primaryWalletId/primaryWalletId.cjs');
30
30
  require('../../../store/state/connectedWalletsInfo/connectedWalletsInfo.cjs');
31
+ var getClientSessionKeys = require('../../functions/clientSessionKeys/getClientSessionKeys.cjs');
31
32
  require('../../../events/dynamicEvents.cjs');
32
33
  var storeTokenAndUser = require('../../../client/extension/storeTokenAndUser/storeTokenAndUser.cjs');
33
34
  var AccessDeniedContext = require('../../../context/AccessDeniedContext/AccessDeniedContext.cjs');
@@ -160,6 +161,12 @@ const useUserAuth = ({ authMethod, }) => {
160
161
  }
161
162
  if (isSignIn) {
162
163
  setCallback('authSuccess');
164
+ const hasWaasWallets = verifiedUser.verifiedCredentials.some((vc) => vc.walletProvider === sdkApiCore.WalletProviderEnum.EmbeddedWallet &&
165
+ vc.walletName === 'dynamicwaas');
166
+ if (hasWaasWallets) {
167
+ // Eagerly initialize waas wallets
168
+ yield handleWaasInitialization(verifiedUser);
169
+ }
163
170
  }
164
171
  const walletVersion = embeddedWalletSettingVersion();
165
172
  if (walletVersion === sdkApiCore.EmbeddedWalletVersionEnum.V1 &&
@@ -184,6 +191,50 @@ const useUserAuth = ({ authMethod, }) => {
184
191
  onSettled === null || onSettled === void 0 ? void 0 : onSettled();
185
192
  }
186
193
  });
194
+ const handleWaasInitialization = (verifiedUser) => _tslib.__awaiter(void 0, void 0, void 0, function* () {
195
+ const sessionSignatureResult = yield getClientSessionKeys.getClientSessionSignature({
196
+ sessionId: verifiedUser === null || verifiedUser === void 0 ? void 0 : verifiedUser.sessionId,
197
+ });
198
+ const dynamicWaasConnectors = walletConnectorOptions.filter((walletOption) => walletOption.walletConnector.key === 'dynamicwaas');
199
+ dynamicWaasConnectors.forEach((walletOption) => {
200
+ var _a;
201
+ const walletAddress = (_a = verifiedUser.verifiedCredentials.find((credential) => {
202
+ var _a;
203
+ return values.VerifiedCredentialNameToChainEnum[(_a = credential.chain) !== null && _a !== void 0 ? _a : ''] ===
204
+ walletOption.walletConnector.connectedChain;
205
+ })) === null || _a === void 0 ? void 0 : _a.address;
206
+ if (walletAddress) {
207
+ // Create the waas iframe
208
+ walletOption.walletConnector
209
+ .getWaasWalletClient()
210
+ .then((client) => {
211
+ // Restore the wallet keyshare to the iframe
212
+ client
213
+ .getWallet({
214
+ accountAddress: walletAddress,
215
+ signedSessionId: sessionSignatureResult.sessionSignature,
216
+ walletOperation: 'SIGN_MESSAGE',
217
+ })
218
+ .catch((error) => {
219
+ logger.logger.error('Error restoring wallet keyshare', {
220
+ error,
221
+ sessionId: verifiedUser.sessionId,
222
+ userId: verifiedUser.userId,
223
+ walletAddress,
224
+ });
225
+ });
226
+ })
227
+ .catch((error) => {
228
+ logger.logger.error('Error initializing waas wallet client', {
229
+ error,
230
+ sessionId: verifiedUser.sessionId,
231
+ userId: verifiedUser.userId,
232
+ walletAddress,
233
+ });
234
+ });
235
+ }
236
+ });
237
+ });
187
238
  const handleAuthError = (error, { options = {}, onError, }) => {
188
239
  var _a;
189
240
  if (error instanceof client.MfaInvalidOtpError ||
@@ -1,13 +1,13 @@
1
1
  'use client'
2
2
  import { __awaiter } from '../../../../../_virtual/_tslib.js';
3
3
  import { MfaInvalidOtpError, MfaRateLimitedError, SandboxMaximumThresholdReachedError as SandboxMaximumThresholdReachedError$1 } from '@dynamic-labs-sdk/client';
4
- import { EmbeddedWalletVersionEnum, MfaBackupCodeAcknowledgement } from '@dynamic-labs/sdk-api-core';
4
+ import { WalletProviderEnum, EmbeddedWalletVersionEnum, MfaBackupCodeAcknowledgement } from '@dynamic-labs/sdk-api-core';
5
5
  import { DynamicError, EmailAlreadyExistsError, CustomFieldNotUniqueError, UsernameAlreadyExistsError, TooManyEmailVerificationsError, InvalidPhoneNumberError, NoAccessError, AccountExistsError, SandboxMaximumThresholdReachedError, UserHasAccountWithEmailError, sleep } from '@dynamic-labs/utils';
6
6
  import '@dynamic-labs-sdk/client/core';
7
7
  import '../../../client/client.js';
8
8
  import 'react';
9
9
  import '../../../config/ApiEndpoint.js';
10
- import '../../constants/values.js';
10
+ import { VerifiedCredentialNameToChainEnum } from '../../constants/values.js';
11
11
  import '@dynamic-labs/multi-wallet';
12
12
  import 'react-international-phone';
13
13
  import '../../constants/colors.js';
@@ -24,6 +24,7 @@ import '@dynamic-labs/locale';
24
24
  import '../../../store/state/dynamicContextProps/dynamicContextProps.js';
25
25
  import '../../../store/state/primaryWalletId/primaryWalletId.js';
26
26
  import '../../../store/state/connectedWalletsInfo/connectedWalletsInfo.js';
27
+ import { getClientSessionSignature } from '../../functions/clientSessionKeys/getClientSessionKeys.js';
27
28
  import '../../../events/dynamicEvents.js';
28
29
  import { storeTokenAndUser } from '../../../client/extension/storeTokenAndUser/storeTokenAndUser.js';
29
30
  import { useAccessDeniedContext } from '../../../context/AccessDeniedContext/AccessDeniedContext.js';
@@ -156,6 +157,12 @@ const useUserAuth = ({ authMethod, }) => {
156
157
  }
157
158
  if (isSignIn) {
158
159
  setCallback('authSuccess');
160
+ const hasWaasWallets = verifiedUser.verifiedCredentials.some((vc) => vc.walletProvider === WalletProviderEnum.EmbeddedWallet &&
161
+ vc.walletName === 'dynamicwaas');
162
+ if (hasWaasWallets) {
163
+ // Eagerly initialize waas wallets
164
+ yield handleWaasInitialization(verifiedUser);
165
+ }
159
166
  }
160
167
  const walletVersion = embeddedWalletSettingVersion();
161
168
  if (walletVersion === EmbeddedWalletVersionEnum.V1 &&
@@ -180,6 +187,50 @@ const useUserAuth = ({ authMethod, }) => {
180
187
  onSettled === null || onSettled === void 0 ? void 0 : onSettled();
181
188
  }
182
189
  });
190
+ const handleWaasInitialization = (verifiedUser) => __awaiter(void 0, void 0, void 0, function* () {
191
+ const sessionSignatureResult = yield getClientSessionSignature({
192
+ sessionId: verifiedUser === null || verifiedUser === void 0 ? void 0 : verifiedUser.sessionId,
193
+ });
194
+ const dynamicWaasConnectors = walletConnectorOptions.filter((walletOption) => walletOption.walletConnector.key === 'dynamicwaas');
195
+ dynamicWaasConnectors.forEach((walletOption) => {
196
+ var _a;
197
+ const walletAddress = (_a = verifiedUser.verifiedCredentials.find((credential) => {
198
+ var _a;
199
+ return VerifiedCredentialNameToChainEnum[(_a = credential.chain) !== null && _a !== void 0 ? _a : ''] ===
200
+ walletOption.walletConnector.connectedChain;
201
+ })) === null || _a === void 0 ? void 0 : _a.address;
202
+ if (walletAddress) {
203
+ // Create the waas iframe
204
+ walletOption.walletConnector
205
+ .getWaasWalletClient()
206
+ .then((client) => {
207
+ // Restore the wallet keyshare to the iframe
208
+ client
209
+ .getWallet({
210
+ accountAddress: walletAddress,
211
+ signedSessionId: sessionSignatureResult.sessionSignature,
212
+ walletOperation: 'SIGN_MESSAGE',
213
+ })
214
+ .catch((error) => {
215
+ logger.error('Error restoring wallet keyshare', {
216
+ error,
217
+ sessionId: verifiedUser.sessionId,
218
+ userId: verifiedUser.userId,
219
+ walletAddress,
220
+ });
221
+ });
222
+ })
223
+ .catch((error) => {
224
+ logger.error('Error initializing waas wallet client', {
225
+ error,
226
+ sessionId: verifiedUser.sessionId,
227
+ userId: verifiedUser.userId,
228
+ walletAddress,
229
+ });
230
+ });
231
+ }
232
+ });
233
+ });
183
234
  const handleAuthError = (error, { options = {}, onError, }) => {
184
235
  var _a;
185
236
  if (error instanceof MfaInvalidOtpError ||