@dynamic-labs/sdk-react-core 4.71.0 → 4.72.0

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 (120) hide show
  1. package/CHANGELOG.md +15 -0
  2. package/package.cjs +2 -2
  3. package/package.js +2 -2
  4. package/package.json +13 -13
  5. package/src/lib/client/extension/functions/generateChainingSignature/generateChainingSignature.cjs +15 -0
  6. package/src/lib/client/extension/functions/generateChainingSignature/generateChainingSignature.d.ts +1 -0
  7. package/src/lib/client/extension/functions/generateChainingSignature/generateChainingSignature.js +11 -0
  8. package/src/lib/client/extension/functions/generateSessionKeys/generateSessionKeys.cjs +11 -0
  9. package/src/lib/client/extension/functions/generateSessionKeys/generateSessionKeys.d.ts +1 -0
  10. package/src/lib/client/extension/functions/generateSessionKeys/generateSessionKeys.js +7 -0
  11. package/src/lib/client/extension/functions/getClientSessionNonceHeaders/getClientSessionNonceHeaders.cjs +33 -0
  12. package/src/lib/client/extension/functions/getClientSessionNonceHeaders/getClientSessionNonceHeaders.d.ts +16 -0
  13. package/src/lib/client/extension/functions/getClientSessionNonceHeaders/getClientSessionNonceHeaders.js +29 -0
  14. package/src/lib/client/extension/functions/getSessionKeys/getSessionKeys.d.ts +1 -0
  15. package/src/lib/client/extension/functions/hasElevatedAccessToken/hasElevatedAccessToken.cjs +5 -9
  16. package/src/lib/client/extension/functions/hasElevatedAccessToken/hasElevatedAccessToken.d.ts +4 -0
  17. package/src/lib/client/extension/functions/hasElevatedAccessToken/hasElevatedAccessToken.js +6 -10
  18. package/src/lib/client/extension/functions/migrateClientSessionKey/migrateClientSessionKey.cjs +51 -0
  19. package/src/lib/client/extension/functions/migrateClientSessionKey/migrateClientSessionKey.d.ts +1 -0
  20. package/src/lib/client/extension/functions/migrateClientSessionKey/migrateClientSessionKey.js +47 -0
  21. package/src/lib/client/extension/hooks/useInitializeSdkClient/getApiHeaders/getApiHeaders.cjs +5 -6
  22. package/src/lib/client/extension/hooks/useInitializeSdkClient/getApiHeaders/getApiHeaders.js +5 -6
  23. package/src/lib/client/extension/hooks/useInitializeSdkClient/useInitializeSdkClient.cjs +2 -0
  24. package/src/lib/client/extension/hooks/useInitializeSdkClient/useInitializeSdkClient.js +2 -0
  25. package/src/lib/client/extension/index.d.ts +4 -0
  26. package/src/lib/components/UserProfile/parts/UserProfileSocialAccount/UserProfileSocialAccount.cjs +2 -2
  27. package/src/lib/components/UserProfile/parts/UserProfileSocialAccount/UserProfileSocialAccount.js +2 -2
  28. package/src/lib/context/ConnectWithOtpContext/utils/createEmailHandler.cjs +2 -2
  29. package/src/lib/context/ConnectWithOtpContext/utils/createEmailHandler.js +2 -2
  30. package/src/lib/context/ConnectWithOtpContext/utils/createSmsHandler.cjs +2 -2
  31. package/src/lib/context/ConnectWithOtpContext/utils/createSmsHandler.js +2 -2
  32. package/src/lib/context/DynamicContext/DynamicContext.cjs +0 -3
  33. package/src/lib/context/DynamicContext/DynamicContext.js +0 -3
  34. package/src/lib/context/DynamicContext/hooks/useHandleLogout/useHandleLogout.cjs +3 -4
  35. package/src/lib/context/DynamicContext/hooks/useHandleLogout/useHandleLogout.js +3 -4
  36. package/src/lib/context/DynamicContext/types/DynamicContextProps.d.ts +10 -0
  37. package/src/lib/context/SocialRedirectContext/SocialRedirectContext.cjs +0 -2
  38. package/src/lib/context/SocialRedirectContext/SocialRedirectContext.js +0 -2
  39. package/src/lib/data/api/api.cjs +1 -1
  40. package/src/lib/data/api/api.js +1 -1
  41. package/src/lib/data/api/embeddedWallets/embeddedWallets.cjs +2 -4
  42. package/src/lib/data/api/embeddedWallets/embeddedWallets.js +2 -4
  43. package/src/lib/store/state/dynamicContextProps/defaultDynamicSettings.cjs +2 -0
  44. package/src/lib/store/state/dynamicContextProps/defaultDynamicSettings.d.ts +3 -3
  45. package/src/lib/store/state/dynamicContextProps/defaultDynamicSettings.js +2 -0
  46. package/src/lib/utils/functions/clientSessionKeys/getClientSessionKeys.cjs +0 -88
  47. package/src/lib/utils/functions/clientSessionKeys/getClientSessionKeys.d.ts +0 -25
  48. package/src/lib/utils/functions/clientSessionKeys/getClientSessionKeys.js +2 -83
  49. package/src/lib/utils/functions/index.d.ts +0 -1
  50. package/src/lib/utils/hooks/authenticationHooks/useConnectAndSign/useConnectAndSign.cjs +0 -2
  51. package/src/lib/utils/hooks/authenticationHooks/useConnectAndSign/useConnectAndSign.js +0 -2
  52. package/src/lib/utils/hooks/authenticationHooks/useConnectAndSignSplitSteps/useConnectAndSignSplitSteps.cjs +0 -2
  53. package/src/lib/utils/hooks/authenticationHooks/useConnectAndSignSplitSteps/useConnectAndSignSplitSteps.js +0 -2
  54. package/src/lib/utils/hooks/authenticationHooks/useSignConnectOnlyUser/useSignConnectOnlyUser.cjs +0 -2
  55. package/src/lib/utils/hooks/authenticationHooks/useSignConnectOnlyUser/useSignConnectOnlyUser.js +0 -2
  56. package/src/lib/utils/hooks/index.d.ts +0 -1
  57. package/src/lib/utils/hooks/useDynamicWaas/useDynamicWaas.cjs +4 -12
  58. package/src/lib/utils/hooks/useDynamicWaas/useDynamicWaas.js +4 -12
  59. package/src/lib/utils/hooks/useEmbeddedWalletSessionKeys/useEmbeddedWalletSessionKeys.cjs +1 -1
  60. package/src/lib/utils/hooks/useEmbeddedWalletSessionKeys/useEmbeddedWalletSessionKeys.js +1 -1
  61. package/src/lib/utils/hooks/useExternalAuth/useExternalAuth.cjs +2 -2
  62. package/src/lib/utils/hooks/useExternalAuth/useExternalAuth.js +2 -2
  63. package/src/lib/utils/hooks/useSetWalletConnectorFetchers/useSetWalletConnectorFetchers.cjs +2 -3
  64. package/src/lib/utils/hooks/useSetWalletConnectorFetchers/useSetWalletConnectorFetchers.js +2 -3
  65. package/src/lib/utils/hooks/useSignInWithPasskey/useSignInWithPasskey.cjs +14 -14
  66. package/src/lib/utils/hooks/useSignInWithPasskey/useSignInWithPasskey.js +14 -14
  67. package/src/lib/utils/hooks/useSocialAuth/useSocialAuth.cjs +3 -3
  68. package/src/lib/utils/hooks/useSocialAuth/useSocialAuth.js +3 -3
  69. package/src/lib/utils/hooks/useStepUpAuthentication/useStepUpAuthentication.cjs +14 -38
  70. package/src/lib/utils/hooks/useStepUpAuthentication/useStepUpAuthentication.js +14 -38
  71. package/src/lib/utils/hooks/useStepUpAuthentication/useStepUpAuthentication.types.d.ts +3 -2
  72. package/src/lib/utils/hooks/useStepUpAuthentication/useStepUpPromptMfa.cjs +4 -1
  73. package/src/lib/utils/hooks/useStepUpAuthentication/useStepUpPromptMfa.js +4 -1
  74. package/src/lib/utils/hooks/useStepUpAuthentication/useStepUpPromptReauth.cjs +22 -6
  75. package/src/lib/utils/hooks/useStepUpAuthentication/useStepUpPromptReauth.js +22 -6
  76. package/src/lib/utils/hooks/useSyncDeviceRegistrationFlow/useSyncDeviceRegistrationFlow.cjs +5 -1
  77. package/src/lib/utils/hooks/useSyncDeviceRegistrationFlow/useSyncDeviceRegistrationFlow.js +5 -1
  78. package/src/lib/utils/hooks/useVerifyWallet/useVerifyWallet.cjs +0 -2
  79. package/src/lib/utils/hooks/useVerifyWallet/useVerifyWallet.js +0 -2
  80. package/src/lib/views/BridgeSummaryView/BridgeSummaryView.cjs +1 -1
  81. package/src/lib/views/BridgeSummaryView/BridgeSummaryView.js +1 -1
  82. package/src/lib/views/EmailVerification/EmailVerification.cjs +2 -2
  83. package/src/lib/views/EmailVerification/EmailVerification.js +2 -2
  84. package/src/lib/views/SmsVerification/useSmsVerification/useSmsVerification.cjs +2 -2
  85. package/src/lib/views/SmsVerification/useSmsVerification/useSmsVerification.js +2 -2
  86. package/src/lib/views/StepUpReauthOtpView/StepUpReauthOtpView.cjs +1 -109
  87. package/src/lib/views/StepUpReauthOtpView/StepUpReauthOtpView.js +1 -109
  88. package/src/lib/views/StepUpReauthSocialView/StepUpReauthSocialView.cjs +1 -2
  89. package/src/lib/views/StepUpReauthSocialView/StepUpReauthSocialView.js +1 -2
  90. package/src/lib/views/StepUpReauthWalletView/StepUpReauthWalletView.cjs +2 -96
  91. package/src/lib/views/StepUpReauthWalletView/StepUpReauthWalletView.js +2 -96
  92. package/src/lib/widgets/DynamicBridgeWidget/components/DynamicBridgeWalletCardBody/DynamicBridgeWalletCardBody.cjs +2 -2
  93. package/src/lib/widgets/DynamicBridgeWidget/components/DynamicBridgeWalletCardBody/DynamicBridgeWalletCardBody.d.ts +1 -0
  94. package/src/lib/widgets/DynamicBridgeWidget/components/DynamicBridgeWalletCardBody/DynamicBridgeWalletCardBody.js +2 -2
  95. package/src/lib/widgets/DynamicBridgeWidget/views/WalletsView/WalletsView.cjs +1 -1
  96. package/src/lib/widgets/DynamicBridgeWidget/views/WalletsView/WalletsView.js +1 -1
  97. package/src/lib/widgets/DynamicBridgeWidget/views/WalletsView/components/SecondaryWallets/SecondaryWallets.cjs +1 -1
  98. package/src/lib/widgets/DynamicBridgeWidget/views/WalletsView/components/SecondaryWallets/SecondaryWallets.js +1 -1
  99. package/src/lib/widgets/DynamicWidget/components/DynamicWidgetWallets/DynamicWidgetWallets.cjs +1 -1
  100. package/src/lib/widgets/DynamicWidget/components/DynamicWidgetWallets/DynamicWidgetWallets.js +1 -1
  101. package/src/lib/widgets/DynamicWidget/components/PasskeyCard/PasskeyCard.cjs +1 -1
  102. package/src/lib/widgets/DynamicWidget/components/PasskeyCard/PasskeyCard.js +1 -1
  103. package/src/lib/widgets/DynamicWidget/prompts/UnlinkWalletPopUp/UnlinkWalletPopUp.cjs +1 -1
  104. package/src/lib/widgets/DynamicWidget/prompts/UnlinkWalletPopUp/UnlinkWalletPopUp.js +1 -1
  105. package/src/lib/widgets/DynamicWidget/views/AccountAndSecuritySettingsView/EmbeddedWalletExportSection/EmbeddedWalletExportSection.cjs +60 -5
  106. package/src/lib/widgets/DynamicWidget/views/AccountAndSecuritySettingsView/EmbeddedWalletExportSection/EmbeddedWalletExportSection.js +61 -6
  107. package/src/lib/widgets/DynamicWidget/views/AccountAndSecuritySettingsView/MfaSection/MfaSection.cjs +12 -54
  108. package/src/lib/widgets/DynamicWidget/views/AccountAndSecuritySettingsView/MfaSection/MfaSection.js +12 -54
  109. package/src/lib/widgets/DynamicWidget/views/EditProfileView/EditProfileView.cjs +1 -1
  110. package/src/lib/widgets/DynamicWidget/views/EditProfileView/EditProfileView.js +1 -1
  111. package/src/lib/widgets/DynamicWidget/views/ManagePasskeysMfaWidgetView/ManagePasskeysMfaWidgetView.cjs +1 -1
  112. package/src/lib/widgets/DynamicWidget/views/ManagePasskeysMfaWidgetView/ManagePasskeysMfaWidgetView.js +1 -1
  113. package/src/lib/widgets/DynamicWidget/views/ManageTotpMfaWidgetView/ManageTotpMfaWidgetView.cjs +2 -2
  114. package/src/lib/widgets/DynamicWidget/views/ManageTotpMfaWidgetView/ManageTotpMfaWidgetView.js +2 -2
  115. package/src/lib/utils/functions/clientSessionKeys/constants.cjs +0 -8
  116. package/src/lib/utils/functions/clientSessionKeys/constants.js +0 -4
  117. package/src/lib/utils/hooks/useClientSessionKeys/index.d.ts +0 -1
  118. package/src/lib/utils/hooks/useClientSessionKeys/useClientSessionKeys.cjs +0 -101
  119. package/src/lib/utils/hooks/useClientSessionKeys/useClientSessionKeys.d.ts +0 -4
  120. package/src/lib/utils/hooks/useClientSessionKeys/useClientSessionKeys.js +0 -97
@@ -146,7 +146,7 @@ const ManagePasskeysMfaWidgetView = () => {
146
146
  return passkeys.map((passkey) => (jsx(PasskeyCard, { passkey: passkey, onUpdate: retrigger }, passkey.id)));
147
147
  };
148
148
  return (jsxs("div", { className: 'manage-totp-mfa-widget-view', children: [jsx(ModalHeader, { leading: backButton, children: jsx("div", { className: 'send-balance-page-layout__header-content', children: jsx(Typography, { variant: 'title', color: 'primary', copykey: 'dyn_manage_passkeys_mfa.title', children: t('dyn_manage_passkeys_mfa.title') }) }) }), jsx(ModalHeaderBanner, { type: 'error', messageKey: registerPasskeyError ? errorMessage : undefined, className: 'manage-totp-mfa-widget-view__header-banner' }), jsx("div", { className: 'manage-totp-mfa-widget-view__scroll-container', children: getPasskeysContent() }), jsx("div", { className: 'manage-totp-mfa-widget-view__add-mfa-button-container', children: jsx(TypographyButton, { buttonClassName: 'manage-totp-mfa-widget-view__add-mfa-button-container__button', onClick: () => __awaiter(void 0, void 0, void 0, function* () {
149
- if (isStepUpRequired({ scope: CREDENTIAL_LINK_SCOPE })) {
149
+ if (yield isStepUpRequired({ scope: CREDENTIAL_LINK_SCOPE })) {
150
150
  try {
151
151
  yield promptStepUpAuth({
152
152
  requestedScopes: [CREDENTIAL_LINK_SCOPE],
@@ -158,7 +158,7 @@ const ManageTotpMfaWidgetView = () => {
158
158
  }));
159
159
  // delete device — use elevated token if step-up is available, else fall back to OTP flow
160
160
  const deleteDevice = (id) => _tslib.__awaiter(void 0, void 0, void 0, function* () {
161
- if (isStepUpRequired({ scope: MFA_DEVICE_DELETE_SCOPE })) {
161
+ if (yield isStepUpRequired({ scope: MFA_DEVICE_DELETE_SCOPE })) {
162
162
  try {
163
163
  yield promptStepUpAuth({ requestedScopes: [MFA_DEVICE_DELETE_SCOPE] });
164
164
  }
@@ -184,7 +184,7 @@ const ManageTotpMfaWidgetView = () => {
184
184
  clearStackAndPush('mfa-display-backup-codes', { regenerateCodes: true });
185
185
  });
186
186
  return (jsxRuntime.jsxs("div", { className: 'manage-totp-mfa-widget-view', children: [jsxRuntime.jsx(ModalHeader.ModalHeader, { leading: backButton, children: jsxRuntime.jsx("div", { className: 'send-balance-page-layout__header-content', children: jsxRuntime.jsx(Typography.Typography, { variant: 'title', color: 'primary', copykey: 'dyn_manage_mfa.title', children: t('dyn_manage_mfa.title') }) }) }), jsxRuntime.jsxs("div", { className: 'manage-totp-mfa-widget-view__scroll-container', children: [loading && jsxRuntime.jsx(MfaDeviceTileSkeleton.MfaDeviceTileSkeleton, {}), !loading && userDevices.length === 0 && (jsxRuntime.jsx(Typography.Typography, { className: 'manage-totp-mfa-widget-view__no-devices', variant: 'body_normal', color: 'secondary', copykey: 'dyn_manage_mfa.no_devices', children: t('dyn_manage_mfa.no_devices') })), userDevices.map((device, index) => (jsxRuntime.jsx(UserDeviceTile.UserDeviceTile, { isMfaRequired: isMfaRequired, userDevice: device, index: index, deleteDevice: deleteDevice }, device.id)))] }), jsxRuntime.jsx("div", { className: 'manage-totp-mfa-widget-view__add-mfa-button-container', children: userDevices.length > 0 ? (jsxRuntime.jsx(TypographyButton.TypographyButton, { buttonClassName: 'manage-totp-mfa-widget-view__add-mfa-button-container__button', onClick: handleGenerateBackupCodes, copykey: 'dyn_manage_mfa.generate_backup_codes_button', children: t('dyn_manage_mfa.generate_backup_codes_button') })) : (jsxRuntime.jsx(TypographyButton.TypographyButton, { buttonClassName: 'manage-totp-mfa-widget-view__add-mfa-button-container__button', onClick: () => _tslib.__awaiter(void 0, void 0, void 0, function* () {
187
- if (isStepUpRequired({ scope: CREDENTIAL_LINK_SCOPE })) {
187
+ if (yield isStepUpRequired({ scope: CREDENTIAL_LINK_SCOPE })) {
188
188
  try {
189
189
  yield promptStepUpAuth({
190
190
  requestedScopes: [CREDENTIAL_LINK_SCOPE],
@@ -154,7 +154,7 @@ const ManageTotpMfaWidgetView = () => {
154
154
  }));
155
155
  // delete device — use elevated token if step-up is available, else fall back to OTP flow
156
156
  const deleteDevice = (id) => __awaiter(void 0, void 0, void 0, function* () {
157
- if (isStepUpRequired({ scope: MFA_DEVICE_DELETE_SCOPE })) {
157
+ if (yield isStepUpRequired({ scope: MFA_DEVICE_DELETE_SCOPE })) {
158
158
  try {
159
159
  yield promptStepUpAuth({ requestedScopes: [MFA_DEVICE_DELETE_SCOPE] });
160
160
  }
@@ -180,7 +180,7 @@ const ManageTotpMfaWidgetView = () => {
180
180
  clearStackAndPush('mfa-display-backup-codes', { regenerateCodes: true });
181
181
  });
182
182
  return (jsxs("div", { className: 'manage-totp-mfa-widget-view', children: [jsx(ModalHeader, { leading: backButton, children: jsx("div", { className: 'send-balance-page-layout__header-content', children: jsx(Typography, { variant: 'title', color: 'primary', copykey: 'dyn_manage_mfa.title', children: t('dyn_manage_mfa.title') }) }) }), jsxs("div", { className: 'manage-totp-mfa-widget-view__scroll-container', children: [loading && jsx(MfaDeviceTileSkeleton, {}), !loading && userDevices.length === 0 && (jsx(Typography, { className: 'manage-totp-mfa-widget-view__no-devices', variant: 'body_normal', color: 'secondary', copykey: 'dyn_manage_mfa.no_devices', children: t('dyn_manage_mfa.no_devices') })), userDevices.map((device, index) => (jsx(UserDeviceTile, { isMfaRequired: isMfaRequired, userDevice: device, index: index, deleteDevice: deleteDevice }, device.id)))] }), jsx("div", { className: 'manage-totp-mfa-widget-view__add-mfa-button-container', children: userDevices.length > 0 ? (jsx(TypographyButton, { buttonClassName: 'manage-totp-mfa-widget-view__add-mfa-button-container__button', onClick: handleGenerateBackupCodes, copykey: 'dyn_manage_mfa.generate_backup_codes_button', children: t('dyn_manage_mfa.generate_backup_codes_button') })) : (jsx(TypographyButton, { buttonClassName: 'manage-totp-mfa-widget-view__add-mfa-button-container__button', onClick: () => __awaiter(void 0, void 0, void 0, function* () {
183
- if (isStepUpRequired({ scope: CREDENTIAL_LINK_SCOPE })) {
183
+ if (yield isStepUpRequired({ scope: CREDENTIAL_LINK_SCOPE })) {
184
184
  try {
185
185
  yield promptStepUpAuth({
186
186
  requestedScopes: [CREDENTIAL_LINK_SCOPE],
@@ -1,8 +0,0 @@
1
- 'use client'
2
- 'use strict';
3
-
4
- Object.defineProperty(exports, '__esModule', { value: true });
5
-
6
- const clientSessionKeyLogScope = 'client-session-key';
7
-
8
- exports.clientSessionKeyLogScope = clientSessionKeyLogScope;
@@ -1,4 +0,0 @@
1
- 'use client'
2
- const clientSessionKeyLogScope = 'client-session-key';
3
-
4
- export { clientSessionKeyLogScope };
@@ -1 +0,0 @@
1
- export { useClientSessionKeys } from './useClientSessionKeys';
@@ -1,101 +0,0 @@
1
- 'use client'
2
- 'use strict';
3
-
4
- Object.defineProperty(exports, '__esModule', { value: true });
5
-
6
- var _tslib = require('../../../../../_virtual/_tslib.cjs');
7
- var React = require('react');
8
- var utils = require('@dynamic-labs/utils');
9
- require('@dynamic-labs-sdk/client/core');
10
- require('@dynamic-labs/sdk-api-core');
11
- require('../../../client/client.cjs');
12
- require('@dynamic-labs-sdk/client');
13
- require('../../../config/ApiEndpoint.cjs');
14
- require('@dynamic-labs/iconic');
15
- require('@dynamic-labs/wallet-connector-core');
16
- require('react/jsx-runtime');
17
- require('../../../context/ViewContext/ViewContext.cjs');
18
- var logger = require('../../../shared/logger.cjs');
19
- require('@dynamic-labs/wallet-book');
20
- require('../../constants/colors.cjs');
21
- require('../../constants/values.cjs');
22
- require('../../../shared/consts/index.cjs');
23
- require('@dynamic-labs/multi-wallet');
24
- require('react-international-phone');
25
- require('../../../store/state/nonce/nonce.cjs');
26
- require('@dynamic-labs/locale');
27
- require('../../../store/state/dynamicContextProps/dynamicContextProps.cjs');
28
- require('../../../store/state/primaryWalletId/primaryWalletId.cjs');
29
- require('../../../store/state/connectedWalletsInfo/connectedWalletsInfo.cjs');
30
- var getClientSessionKeys = require('../../functions/clientSessionKeys/getClientSessionKeys.cjs');
31
- require('../../functions/getWaasAddressTypeLabel/getWaasAddressTypeLabel.cjs');
32
- require('../../../events/dynamicEvents.cjs');
33
- var getUserProfile = require('../../../client/extension/user/getUserProfile/getUserProfile.cjs');
34
- var useOnboardingCompleteUser = require('../../../client/extension/user/useOnboardingCompleteUser/useOnboardingCompleteUser.cjs');
35
- var getMinAuthToken = require('../../../client/extension/functions/getMinAuthToken/getMinAuthToken.cjs');
36
- var sessionStorage = require('../../constants/sessionStorage.cjs');
37
-
38
- const useClientSessionKeys = () => {
39
- const user = useOnboardingCompleteUser.useOnboardingCompleteUser();
40
- const sessionPublicKey = getClientSessionKeys.getClientSessionPublicKey();
41
- // Use refs to capture latest values without causing function reference changes
42
- const userRef = React.useRef(user);
43
- const sessionPublicKeyRef = React.useRef(sessionPublicKey);
44
- // Update refs on every render
45
- userRef.current = user;
46
- sessionPublicKeyRef.current = sessionPublicKey;
47
- /**
48
- * Get a signed session ID with nonce for replay protection.
49
- * Returns signature in format: `${signedSessionId}/${signedNonce}/${nonce}`
50
- *
51
- * This is a lazy function - nonce API is only called when this function is invoked.
52
- */
53
- const getSignedSessionId = React.useCallback(() => _tslib.__awaiter(void 0, void 0, void 0, function* () {
54
- const currentUser = userRef.current;
55
- const currentPublicKey = sessionPublicKeyRef.current;
56
- if (!(currentUser === null || currentUser === void 0 ? void 0 : currentUser.sessionId) || !currentPublicKey) {
57
- logger.logger.instrument('[SessionChaining] Session ID and public key are required', {
58
- hasClientSessionKeysInSecureStorage: Boolean(utils.StorageService.getItem(sessionStorage.CLIENT_SESSION_KEYS, sessionStorage.CLIENT_SESSION_KEYS_STORAGE_OPTIONS)),
59
- hasLocalStorage: Boolean(utils.StorageService.getSourceStorage('localStorage')),
60
- hasSecureStorage: Boolean(utils.StorageService.getSourceStorage('secureStorage')),
61
- hasSessionId: currentUser ? Boolean(currentUser.sessionId) : false,
62
- hasSessionPublicKey: Boolean(currentPublicKey),
63
- hasSessionStorage: Boolean(utils.StorageService.getSourceStorage('sessionStorage')),
64
- hasUser: Boolean(currentUser),
65
- key: 'session_chaining_missing_requirements',
66
- sessionId: currentUser === null || currentUser === void 0 ? void 0 : currentUser.sessionId,
67
- sessionPublicKey: currentPublicKey,
68
- stateHasMinAuthToken: Boolean(getMinAuthToken.getMinAuthToken()),
69
- stateHasUser: Boolean(getUserProfile.getUserProfile()),
70
- time: 0,
71
- userId: currentUser === null || currentUser === void 0 ? void 0 : currentUser.id,
72
- });
73
- throw new Error('Session ID and public key are required');
74
- }
75
- const { sessionSignature: signedSessionId } = yield getClientSessionKeys.getClientSessionSignature({
76
- sessionId: currentUser.sessionId,
77
- });
78
- const { nonce, nonceSignature } = yield getClientSessionKeys.getClientSessionNonceSignature({
79
- environmentId: currentUser.projectEnvironmentId,
80
- });
81
- const sessionSignature = `${signedSessionId}/${nonceSignature}/${nonce}`;
82
- logger.logger.instrument('[SessionChaining] Generated session signature', {
83
- environmentId: currentUser.projectEnvironmentId,
84
- key: 'generated_session_signature',
85
- nonce,
86
- nonceSignature,
87
- sessionId: currentUser.sessionId,
88
- sessionPublicKey: currentPublicKey,
89
- sessionSignature,
90
- signedSessionId,
91
- time: 0,
92
- });
93
- return sessionSignature;
94
- }), []);
95
- return {
96
- getSignedSessionId,
97
- sessionPublicKey,
98
- };
99
- };
100
-
101
- exports.useClientSessionKeys = useClientSessionKeys;
@@ -1,4 +0,0 @@
1
- export declare const useClientSessionKeys: () => {
2
- getSignedSessionId: () => Promise<string>;
3
- sessionPublicKey: string | undefined;
4
- };
@@ -1,97 +0,0 @@
1
- 'use client'
2
- import { __awaiter } from '../../../../../_virtual/_tslib.js';
3
- import { useRef, useCallback } from 'react';
4
- import { StorageService } from '@dynamic-labs/utils';
5
- import '@dynamic-labs-sdk/client/core';
6
- import '@dynamic-labs/sdk-api-core';
7
- import '../../../client/client.js';
8
- import '@dynamic-labs-sdk/client';
9
- import '../../../config/ApiEndpoint.js';
10
- import '@dynamic-labs/iconic';
11
- import '@dynamic-labs/wallet-connector-core';
12
- import 'react/jsx-runtime';
13
- import '../../../context/ViewContext/ViewContext.js';
14
- import { logger } from '../../../shared/logger.js';
15
- import '@dynamic-labs/wallet-book';
16
- import '../../constants/colors.js';
17
- import '../../constants/values.js';
18
- import '../../../shared/consts/index.js';
19
- import '@dynamic-labs/multi-wallet';
20
- import 'react-international-phone';
21
- import '../../../store/state/nonce/nonce.js';
22
- import '@dynamic-labs/locale';
23
- import '../../../store/state/dynamicContextProps/dynamicContextProps.js';
24
- import '../../../store/state/primaryWalletId/primaryWalletId.js';
25
- import '../../../store/state/connectedWalletsInfo/connectedWalletsInfo.js';
26
- import { getClientSessionPublicKey, getClientSessionSignature, getClientSessionNonceSignature } from '../../functions/clientSessionKeys/getClientSessionKeys.js';
27
- import '../../functions/getWaasAddressTypeLabel/getWaasAddressTypeLabel.js';
28
- import '../../../events/dynamicEvents.js';
29
- import { getUserProfile } from '../../../client/extension/user/getUserProfile/getUserProfile.js';
30
- import { useOnboardingCompleteUser } from '../../../client/extension/user/useOnboardingCompleteUser/useOnboardingCompleteUser.js';
31
- import { getMinAuthToken } from '../../../client/extension/functions/getMinAuthToken/getMinAuthToken.js';
32
- import { CLIENT_SESSION_KEYS, CLIENT_SESSION_KEYS_STORAGE_OPTIONS } from '../../constants/sessionStorage.js';
33
-
34
- const useClientSessionKeys = () => {
35
- const user = useOnboardingCompleteUser();
36
- const sessionPublicKey = getClientSessionPublicKey();
37
- // Use refs to capture latest values without causing function reference changes
38
- const userRef = useRef(user);
39
- const sessionPublicKeyRef = useRef(sessionPublicKey);
40
- // Update refs on every render
41
- userRef.current = user;
42
- sessionPublicKeyRef.current = sessionPublicKey;
43
- /**
44
- * Get a signed session ID with nonce for replay protection.
45
- * Returns signature in format: `${signedSessionId}/${signedNonce}/${nonce}`
46
- *
47
- * This is a lazy function - nonce API is only called when this function is invoked.
48
- */
49
- const getSignedSessionId = useCallback(() => __awaiter(void 0, void 0, void 0, function* () {
50
- const currentUser = userRef.current;
51
- const currentPublicKey = sessionPublicKeyRef.current;
52
- if (!(currentUser === null || currentUser === void 0 ? void 0 : currentUser.sessionId) || !currentPublicKey) {
53
- logger.instrument('[SessionChaining] Session ID and public key are required', {
54
- hasClientSessionKeysInSecureStorage: Boolean(StorageService.getItem(CLIENT_SESSION_KEYS, CLIENT_SESSION_KEYS_STORAGE_OPTIONS)),
55
- hasLocalStorage: Boolean(StorageService.getSourceStorage('localStorage')),
56
- hasSecureStorage: Boolean(StorageService.getSourceStorage('secureStorage')),
57
- hasSessionId: currentUser ? Boolean(currentUser.sessionId) : false,
58
- hasSessionPublicKey: Boolean(currentPublicKey),
59
- hasSessionStorage: Boolean(StorageService.getSourceStorage('sessionStorage')),
60
- hasUser: Boolean(currentUser),
61
- key: 'session_chaining_missing_requirements',
62
- sessionId: currentUser === null || currentUser === void 0 ? void 0 : currentUser.sessionId,
63
- sessionPublicKey: currentPublicKey,
64
- stateHasMinAuthToken: Boolean(getMinAuthToken()),
65
- stateHasUser: Boolean(getUserProfile()),
66
- time: 0,
67
- userId: currentUser === null || currentUser === void 0 ? void 0 : currentUser.id,
68
- });
69
- throw new Error('Session ID and public key are required');
70
- }
71
- const { sessionSignature: signedSessionId } = yield getClientSessionSignature({
72
- sessionId: currentUser.sessionId,
73
- });
74
- const { nonce, nonceSignature } = yield getClientSessionNonceSignature({
75
- environmentId: currentUser.projectEnvironmentId,
76
- });
77
- const sessionSignature = `${signedSessionId}/${nonceSignature}/${nonce}`;
78
- logger.instrument('[SessionChaining] Generated session signature', {
79
- environmentId: currentUser.projectEnvironmentId,
80
- key: 'generated_session_signature',
81
- nonce,
82
- nonceSignature,
83
- sessionId: currentUser.sessionId,
84
- sessionPublicKey: currentPublicKey,
85
- sessionSignature,
86
- signedSessionId,
87
- time: 0,
88
- });
89
- return sessionSignature;
90
- }), []);
91
- return {
92
- getSignedSessionId,
93
- sessionPublicKey,
94
- };
95
- };
96
-
97
- export { useClientSessionKeys };