@dynamic-labs/sdk-react-core 4.0.0-alpha.0 → 4.0.0-alpha.1
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 +16 -0
- package/package.cjs +2 -2
- package/package.js +2 -2
- package/package.json +12 -12
- package/src/lib/components/index.d.ts +0 -1
- package/src/lib/context/ConnectWithOtpContext/ConnectWithOtpProvider.cjs +5 -2
- package/src/lib/context/ConnectWithOtpContext/ConnectWithOtpProvider.js +5 -2
- package/src/lib/context/ConnectWithOtpContext/utils/createSmsHandler.cjs +1 -70
- package/src/lib/context/ConnectWithOtpContext/utils/createSmsHandler.d.ts +2 -1
- package/src/lib/context/ConnectWithOtpContext/utils/createSmsHandler.js +1 -70
- package/src/lib/context/DynamicContext/DynamicContext.cjs +6 -5
- package/src/lib/context/DynamicContext/DynamicContext.js +6 -5
- package/src/lib/context/DynamicContext/hooks/useRegisterStorageService/useRegisterStorageService.cjs +2 -0
- package/src/lib/context/DynamicContext/hooks/useRegisterStorageService/useRegisterStorageService.js +3 -1
- package/src/lib/context/PhantomRedirectContext/useResponseHandlers.cjs +1 -1
- package/src/lib/context/PhantomRedirectContext/useResponseHandlers.js +1 -1
- package/src/lib/context/SocialRedirectContext/SocialRedirectContext.cjs +1 -1
- package/src/lib/context/SocialRedirectContext/SocialRedirectContext.js +1 -1
- package/src/lib/context/ViewContext/types/index.d.ts +1 -1
- package/src/lib/data/api/embeddedWallets/embeddedWallets.cjs +12 -5
- package/src/lib/data/api/embeddedWallets/embeddedWallets.d.ts +4 -3
- package/src/lib/data/api/embeddedWallets/embeddedWallets.js +14 -7
- package/src/lib/data/api/transactions/blockaid.cjs +23 -0
- package/src/lib/data/api/transactions/blockaid.js +19 -0
- package/src/lib/locale/en/translation.cjs +34 -0
- package/src/lib/locale/en/translation.d.ts +34 -0
- package/src/lib/locale/en/translation.js +34 -0
- package/src/lib/shared/assets/caution-triangle.cjs +54 -0
- package/src/lib/shared/assets/caution-triangle.js +30 -0
- package/src/lib/shared/assets/exclamation-circle.cjs +54 -0
- package/src/lib/shared/assets/exclamation-circle.js +30 -0
- package/src/lib/shared/assets/exclamation.cjs +52 -0
- package/src/lib/shared/assets/exclamation.js +28 -0
- package/src/lib/shared/assets/index.d.ts +5 -0
- package/src/lib/shared/assets/warning-orange.cjs +54 -0
- package/src/lib/shared/assets/warning-orange.js +30 -0
- package/src/lib/shared/assets/warning-red.cjs +54 -0
- package/src/lib/shared/assets/warning-red.js +30 -0
- package/src/lib/styles/index.shadow.cjs +1 -1
- package/src/lib/styles/index.shadow.js +1 -1
- package/src/lib/utils/constants/localStorage.cjs +6 -0
- package/src/lib/utils/constants/localStorage.d.ts +3 -0
- package/src/lib/utils/constants/localStorage.js +5 -1
- package/src/lib/utils/functions/getNewVerifiedCredentialsFromDiff/getNewVerifiedCredentialsFromDiff.cjs +11 -0
- package/src/lib/utils/functions/getNewVerifiedCredentialsFromDiff/getNewVerifiedCredentialsFromDiff.d.ts +2 -0
- package/src/lib/utils/functions/getNewVerifiedCredentialsFromDiff/getNewVerifiedCredentialsFromDiff.js +7 -0
- package/src/lib/utils/functions/getNewVerifiedCredentialsFromDiff/index.d.ts +1 -0
- package/src/lib/utils/hooks/authenticationHooks/useConnectAndSign/useConnectAndSign.cjs +1 -1
- package/src/lib/utils/hooks/authenticationHooks/useConnectAndSign/useConnectAndSign.js +1 -1
- package/src/lib/utils/hooks/authenticationHooks/useConnectAndSignSplitSteps/useConnectAndSignSplitSteps.cjs +1 -1
- package/src/lib/utils/hooks/authenticationHooks/useConnectAndSignSplitSteps/useConnectAndSignSplitSteps.js +1 -1
- package/src/lib/utils/hooks/authenticationHooks/useSignConnectOnlyUser/useSignConnectOnlyUser.cjs +1 -1
- package/src/lib/utils/hooks/authenticationHooks/useSignConnectOnlyUser/useSignConnectOnlyUser.js +1 -1
- package/src/lib/utils/hooks/index.d.ts +1 -0
- package/src/lib/utils/hooks/useAuthLayoutChecks/useAuthLayoutChecks.cjs +1 -0
- package/src/lib/utils/hooks/useAuthLayoutChecks/useAuthLayoutChecks.js +1 -0
- package/src/lib/utils/hooks/useEmbeddedWallet/useSecureEnclaveEmbeddedWallet/useSecureEnclaveEmbeddedWallet.cjs +9 -2
- package/src/lib/utils/hooks/useEmbeddedWallet/useSecureEnclaveEmbeddedWallet/useSecureEnclaveEmbeddedWallet.js +9 -2
- package/src/lib/utils/hooks/useEmbeddedWallet/useSecureEnclaveEmbeddedWallet/utils.cjs +15 -2
- package/src/lib/utils/hooks/useEmbeddedWallet/useSecureEnclaveEmbeddedWallet/utils.d.ts +3 -1
- package/src/lib/utils/hooks/useEmbeddedWallet/useSecureEnclaveEmbeddedWallet/utils.js +15 -3
- package/src/lib/utils/hooks/useEmbeddedWalletSessionKeys/useEmbeddedWalletSessionKeys.cjs +82 -26
- package/src/lib/utils/hooks/useEmbeddedWalletSessionKeys/useEmbeddedWalletSessionKeys.d.ts +19 -2
- package/src/lib/utils/hooks/useEmbeddedWalletSessionKeys/useEmbeddedWalletSessionKeys.js +82 -26
- package/src/lib/utils/hooks/useEndUserWarning/index.d.ts +1 -0
- package/src/lib/utils/hooks/useEndUserWarning/useEndUserWarning.cjs +37 -0
- package/src/lib/utils/hooks/useEndUserWarning/useEndUserWarning.d.ts +5 -0
- package/src/lib/utils/hooks/useEndUserWarning/useEndUserWarning.js +33 -0
- package/src/lib/utils/hooks/useExternalAuth/useExternalAuth.cjs +5 -2
- package/src/lib/utils/hooks/useExternalAuth/useExternalAuth.js +5 -2
- package/src/lib/utils/hooks/useSetWalletConnectorFetchers/useSetWalletConnectorFetchers.cjs +2 -2
- package/src/lib/utils/hooks/useSetWalletConnectorFetchers/useSetWalletConnectorFetchers.d.ts +2 -1
- package/src/lib/utils/hooks/useSetWalletConnectorFetchers/useSetWalletConnectorFetchers.js +2 -2
- package/src/lib/utils/hooks/useSocialAuth/useSocialAuth.cjs +7 -3
- package/src/lib/utils/hooks/useSocialAuth/useSocialAuth.d.ts +2 -1
- package/src/lib/utils/hooks/useSocialAuth/useSocialAuth.js +7 -3
- package/src/lib/utils/hooks/useTelegramLogin/useTelegramLogin.cjs +25 -24
- package/src/lib/utils/hooks/useTelegramLogin/useTelegramLogin.d.ts +7 -1
- package/src/lib/utils/hooks/useTelegramLogin/useTelegramLogin.js +25 -24
- package/src/lib/utils/hooks/useVerifyWallet/useVerifyWallet.cjs +4 -1
- package/src/lib/utils/hooks/useVerifyWallet/useVerifyWallet.js +4 -1
- package/src/lib/views/EmailVerification/EmailVerification.cjs +4 -1
- package/src/lib/views/EmailVerification/EmailVerification.js +4 -1
- package/src/lib/views/GlobalWalletMaliciousView/GlobalWalletMaliciousView.cjs +139 -0
- package/src/lib/views/GlobalWalletMaliciousView/GlobalWalletMaliciousView.d.ts +11 -0
- package/src/lib/views/GlobalWalletMaliciousView/GlobalWalletMaliciousView.js +134 -0
- package/src/lib/views/SmsVerification/useSmsVerification/useSmsVerification.cjs +5 -2
- package/src/lib/views/SmsVerification/useSmsVerification/useSmsVerification.js +5 -2
- package/src/lib/views/viewToComponentMap.cjs +2 -0
- package/src/lib/views/viewToComponentMap.d.ts +1 -0
- package/src/lib/views/viewToComponentMap.js +2 -0
- package/src/lib/widgets/DynamicWidget/views/GlobalWalletView/GlobalWalletView.cjs +31 -8
- package/src/lib/widgets/DynamicWidget/views/GlobalWalletView/GlobalWalletView.js +31 -8
- package/src/lib/components/TelegramAutoLogin/TelegramAutoLogin.cjs +0 -99
- package/src/lib/components/TelegramAutoLogin/TelegramAutoLogin.d.ts +0 -1
- package/src/lib/components/TelegramAutoLogin/TelegramAutoLogin.js +0 -95
- package/src/lib/components/TelegramAutoLogin/index.d.ts +0 -1
- package/src/lib/utils/constants/sessionStorage.cjs +0 -12
- package/src/lib/utils/constants/sessionStorage.js +0 -7
|
@@ -26,6 +26,10 @@ const CAPTCHA_TOKEN = 'dynamic_captcha_token';
|
|
|
26
26
|
*/
|
|
27
27
|
const PHANTOM_SIGNATURE_STATE = 'phantom_verification_type';
|
|
28
28
|
const STORE_STORAGE_KEY = 'dynamic_store';
|
|
29
|
+
const SECURE_ENCLAVE_WALLET_SESSION_KEYS = 'dynamic_secure_enclave_session_keys';
|
|
30
|
+
const SECURE_ENCLAVE_WALLET_SESSION_KEYS_STORAGE_OPTIONS = {
|
|
31
|
+
priority: ['secureStorage', 'localStorage'],
|
|
32
|
+
};
|
|
29
33
|
|
|
30
34
|
exports.AUTH_EXPIRES_AT = AUTH_EXPIRES_AT;
|
|
31
35
|
exports.AUTH_MIN_TOKEN = AUTH_MIN_TOKEN;
|
|
@@ -44,6 +48,8 @@ exports.NONCE_STORAGE_KEY = NONCE_STORAGE_KEY;
|
|
|
44
48
|
exports.PHANTOM_SIGNATURE_STATE = PHANTOM_SIGNATURE_STATE;
|
|
45
49
|
exports.PHONE_INPUT_DEFAULT_COUNTRY = PHONE_INPUT_DEFAULT_COUNTRY;
|
|
46
50
|
exports.PRIMARY_WALLET_ID = PRIMARY_WALLET_ID;
|
|
51
|
+
exports.SECURE_ENCLAVE_WALLET_SESSION_KEYS = SECURE_ENCLAVE_WALLET_SESSION_KEYS;
|
|
52
|
+
exports.SECURE_ENCLAVE_WALLET_SESSION_KEYS_STORAGE_OPTIONS = SECURE_ENCLAVE_WALLET_SESSION_KEYS_STORAGE_OPTIONS;
|
|
47
53
|
exports.STORE_STORAGE_KEY = STORE_STORAGE_KEY;
|
|
48
54
|
exports.WAGMI_LAST_SESSION_SETTINGS = WAGMI_LAST_SESSION_SETTINGS;
|
|
49
55
|
exports.WALLET_PICKER_SEARCH_KEY = WALLET_PICKER_SEARCH_KEY;
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { StorageOptions } from '@dynamic-labs/utils';
|
|
1
2
|
export declare const AUTH_TOKEN = "dynamic_authentication_token";
|
|
2
3
|
export declare const AUTH_MIN_TOKEN = "dynamic_min_authentication_token";
|
|
3
4
|
export declare const AUTH_EXPIRES_AT = "dynamic_auth_expires_at";
|
|
@@ -33,3 +34,5 @@ export type PhantomSignatureState = {
|
|
|
33
34
|
export declare const PHANTOM_SIGNATURE_STATE = "phantom_verification_type";
|
|
34
35
|
export declare const STORE_STORAGE_KEY = "dynamic_store";
|
|
35
36
|
export declare const IP_LOOKUP_STORAGE_KEY = "dynamic_ip_lookup";
|
|
37
|
+
export declare const SECURE_ENCLAVE_WALLET_SESSION_KEYS = "dynamic_secure_enclave_session_keys";
|
|
38
|
+
export declare const SECURE_ENCLAVE_WALLET_SESSION_KEYS_STORAGE_OPTIONS: StorageOptions;
|
|
@@ -22,5 +22,9 @@ const CAPTCHA_TOKEN = 'dynamic_captcha_token';
|
|
|
22
22
|
*/
|
|
23
23
|
const PHANTOM_SIGNATURE_STATE = 'phantom_verification_type';
|
|
24
24
|
const STORE_STORAGE_KEY = 'dynamic_store';
|
|
25
|
+
const SECURE_ENCLAVE_WALLET_SESSION_KEYS = 'dynamic_secure_enclave_session_keys';
|
|
26
|
+
const SECURE_ENCLAVE_WALLET_SESSION_KEYS_STORAGE_OPTIONS = {
|
|
27
|
+
priority: ['secureStorage', 'localStorage'],
|
|
28
|
+
};
|
|
25
29
|
|
|
26
|
-
export { AUTH_EXPIRES_AT, AUTH_MIN_TOKEN, AUTH_MODE, AUTH_TOKEN, BRIDGE_ONBOARDING_COMPLETED, CAPTCHA_TOKEN, CONNECTED_WALLETS_INFO, CONNECTED_WALLET_NAME_SERVICE, DYNAMIC_CONTEXT_LAST_SESSION_SETTINGS, EMBEDDED_WALLET_SECURE_BANNER, EMBEDDED_WALLET_SESSION_SETTINGS, LAST_USED_WALLET, NEWTOWEB3_WALLET_EXTENSION_FLAG_KEY, NONCE_STORAGE_KEY, PHANTOM_SIGNATURE_STATE, PHONE_INPUT_DEFAULT_COUNTRY, PRIMARY_WALLET_ID, STORE_STORAGE_KEY, WAGMI_LAST_SESSION_SETTINGS, WALLET_PICKER_SEARCH_KEY };
|
|
30
|
+
export { AUTH_EXPIRES_AT, AUTH_MIN_TOKEN, AUTH_MODE, AUTH_TOKEN, BRIDGE_ONBOARDING_COMPLETED, CAPTCHA_TOKEN, CONNECTED_WALLETS_INFO, CONNECTED_WALLET_NAME_SERVICE, DYNAMIC_CONTEXT_LAST_SESSION_SETTINGS, EMBEDDED_WALLET_SECURE_BANNER, EMBEDDED_WALLET_SESSION_SETTINGS, LAST_USED_WALLET, NEWTOWEB3_WALLET_EXTENSION_FLAG_KEY, NONCE_STORAGE_KEY, PHANTOM_SIGNATURE_STATE, PHONE_INPUT_DEFAULT_COUNTRY, PRIMARY_WALLET_ID, SECURE_ENCLAVE_WALLET_SESSION_KEYS, SECURE_ENCLAVE_WALLET_SESSION_KEYS_STORAGE_OPTIONS, STORE_STORAGE_KEY, WAGMI_LAST_SESSION_SETTINGS, WALLET_PICKER_SEARCH_KEY };
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
'use client'
|
|
2
|
+
'use strict';
|
|
3
|
+
|
|
4
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
5
|
+
|
|
6
|
+
const getNewVerifiedCredentialsFromDiff = (verifiedCredentialsA, verifiedCredentialsB) => {
|
|
7
|
+
const knownIds = verifiedCredentialsA.map((vc) => vc.id);
|
|
8
|
+
return verifiedCredentialsB.filter((vc) => !knownIds.includes(vc.id));
|
|
9
|
+
};
|
|
10
|
+
|
|
11
|
+
exports.getNewVerifiedCredentialsFromDiff = getNewVerifiedCredentialsFromDiff;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
'use client'
|
|
2
|
+
const getNewVerifiedCredentialsFromDiff = (verifiedCredentialsA, verifiedCredentialsB) => {
|
|
3
|
+
const knownIds = verifiedCredentialsA.map((vc) => vc.id);
|
|
4
|
+
return verifiedCredentialsB.filter((vc) => !knownIds.includes(vc.id));
|
|
5
|
+
};
|
|
6
|
+
|
|
7
|
+
export { getNewVerifiedCredentialsFromDiff };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { getNewVerifiedCredentialsFromDiff } from './getNewVerifiedCredentialsFromDiff';
|
|
@@ -37,6 +37,7 @@ var isConnectOnly = require('../helpers/isConnectOnly.cjs');
|
|
|
37
37
|
require('../../../../context/VerificationContext/VerificationContext.cjs');
|
|
38
38
|
require('react-dom');
|
|
39
39
|
require('../../../../context/WalletContext/WalletContext.cjs');
|
|
40
|
+
require('../../../../context/UserWalletsContext/UserWalletsContext.cjs');
|
|
40
41
|
require('../../useEmbeddedWallet/useSecureEnclaveEmbeddedWallet/constants.cjs');
|
|
41
42
|
require('../../../../context/ThemeContext/ThemeContext.cjs');
|
|
42
43
|
require('../../useUserUpdateRequest/useUpdateUser/userFieldsSchema.cjs');
|
|
@@ -52,7 +53,6 @@ require('../../../../context/UserFieldEditorContext/UserFieldEditorContext.cjs')
|
|
|
52
53
|
require('@dynamic-labs/rpc-providers');
|
|
53
54
|
require('../../../../store/state/environmentId.cjs');
|
|
54
55
|
require('../../../../store/state/walletConnectorOptions.cjs');
|
|
55
|
-
require('../../../../context/UserWalletsContext/UserWalletsContext.cjs');
|
|
56
56
|
require('react-i18next');
|
|
57
57
|
require('../../../../components/Accordion/components/AccordionItem/AccordionItem.cjs');
|
|
58
58
|
require('../../../../components/Alert/Alert.cjs');
|
|
@@ -33,6 +33,7 @@ import { isConnectOnly } from '../helpers/isConnectOnly.js';
|
|
|
33
33
|
import '../../../../context/VerificationContext/VerificationContext.js';
|
|
34
34
|
import 'react-dom';
|
|
35
35
|
import '../../../../context/WalletContext/WalletContext.js';
|
|
36
|
+
import '../../../../context/UserWalletsContext/UserWalletsContext.js';
|
|
36
37
|
import '../../useEmbeddedWallet/useSecureEnclaveEmbeddedWallet/constants.js';
|
|
37
38
|
import '../../../../context/ThemeContext/ThemeContext.js';
|
|
38
39
|
import '../../useUserUpdateRequest/useUpdateUser/userFieldsSchema.js';
|
|
@@ -48,7 +49,6 @@ import '../../../../context/UserFieldEditorContext/UserFieldEditorContext.js';
|
|
|
48
49
|
import '@dynamic-labs/rpc-providers';
|
|
49
50
|
import '../../../../store/state/environmentId.js';
|
|
50
51
|
import '../../../../store/state/walletConnectorOptions.js';
|
|
51
|
-
import '../../../../context/UserWalletsContext/UserWalletsContext.js';
|
|
52
52
|
import 'react-i18next';
|
|
53
53
|
import '../../../../components/Accordion/components/AccordionItem/AccordionItem.js';
|
|
54
54
|
import '../../../../components/Alert/Alert.js';
|
|
@@ -37,6 +37,7 @@ var isConnectOnly = require('../helpers/isConnectOnly.cjs');
|
|
|
37
37
|
require('../../../../context/VerificationContext/VerificationContext.cjs');
|
|
38
38
|
require('react-dom');
|
|
39
39
|
require('../../../../context/WalletContext/WalletContext.cjs');
|
|
40
|
+
require('../../../../context/UserWalletsContext/UserWalletsContext.cjs');
|
|
40
41
|
require('../../useEmbeddedWallet/useSecureEnclaveEmbeddedWallet/constants.cjs');
|
|
41
42
|
require('../../../../context/ThemeContext/ThemeContext.cjs');
|
|
42
43
|
require('../../useUserUpdateRequest/useUpdateUser/userFieldsSchema.cjs');
|
|
@@ -52,7 +53,6 @@ require('../../../../context/UserFieldEditorContext/UserFieldEditorContext.cjs')
|
|
|
52
53
|
require('@dynamic-labs/rpc-providers');
|
|
53
54
|
require('../../../../store/state/environmentId.cjs');
|
|
54
55
|
require('../../../../store/state/walletConnectorOptions.cjs');
|
|
55
|
-
require('../../../../context/UserWalletsContext/UserWalletsContext.cjs');
|
|
56
56
|
require('react-i18next');
|
|
57
57
|
require('../../../../components/Accordion/components/AccordionItem/AccordionItem.cjs');
|
|
58
58
|
require('../../../../components/Alert/Alert.cjs');
|
|
@@ -33,6 +33,7 @@ import { isConnectOnly } from '../helpers/isConnectOnly.js';
|
|
|
33
33
|
import '../../../../context/VerificationContext/VerificationContext.js';
|
|
34
34
|
import 'react-dom';
|
|
35
35
|
import '../../../../context/WalletContext/WalletContext.js';
|
|
36
|
+
import '../../../../context/UserWalletsContext/UserWalletsContext.js';
|
|
36
37
|
import '../../useEmbeddedWallet/useSecureEnclaveEmbeddedWallet/constants.js';
|
|
37
38
|
import '../../../../context/ThemeContext/ThemeContext.js';
|
|
38
39
|
import '../../useUserUpdateRequest/useUpdateUser/userFieldsSchema.js';
|
|
@@ -48,7 +49,6 @@ import '../../../../context/UserFieldEditorContext/UserFieldEditorContext.js';
|
|
|
48
49
|
import '@dynamic-labs/rpc-providers';
|
|
49
50
|
import '../../../../store/state/environmentId.js';
|
|
50
51
|
import '../../../../store/state/walletConnectorOptions.js';
|
|
51
|
-
import '../../../../context/UserWalletsContext/UserWalletsContext.js';
|
|
52
52
|
import 'react-i18next';
|
|
53
53
|
import '../../../../components/Accordion/components/AccordionItem/AccordionItem.js';
|
|
54
54
|
import '../../../../components/Alert/Alert.js';
|
package/src/lib/utils/hooks/authenticationHooks/useSignConnectOnlyUser/useSignConnectOnlyUser.cjs
CHANGED
|
@@ -31,6 +31,7 @@ var useVerifyWallet = require('../../useVerifyWallet/useVerifyWallet.cjs');
|
|
|
31
31
|
require('../../../../context/VerificationContext/VerificationContext.cjs');
|
|
32
32
|
require('react-dom');
|
|
33
33
|
require('../../../../context/WalletContext/WalletContext.cjs');
|
|
34
|
+
require('../../../../context/UserWalletsContext/UserWalletsContext.cjs');
|
|
34
35
|
require('../../useEmbeddedWallet/useSecureEnclaveEmbeddedWallet/constants.cjs');
|
|
35
36
|
require('../../../../context/ThemeContext/ThemeContext.cjs');
|
|
36
37
|
require('../../useUserUpdateRequest/useUpdateUser/userFieldsSchema.cjs');
|
|
@@ -46,7 +47,6 @@ require('../../../../context/UserFieldEditorContext/UserFieldEditorContext.cjs')
|
|
|
46
47
|
require('@dynamic-labs/rpc-providers');
|
|
47
48
|
require('../../../../store/state/environmentId.cjs');
|
|
48
49
|
require('../../../../store/state/walletConnectorOptions.cjs');
|
|
49
|
-
require('../../../../context/UserWalletsContext/UserWalletsContext.cjs');
|
|
50
50
|
require('react-i18next');
|
|
51
51
|
require('../../../../components/Accordion/components/AccordionItem/AccordionItem.cjs');
|
|
52
52
|
require('../../../../components/Alert/Alert.cjs');
|
package/src/lib/utils/hooks/authenticationHooks/useSignConnectOnlyUser/useSignConnectOnlyUser.js
CHANGED
|
@@ -27,6 +27,7 @@ import { useVerifyWallet } from '../../useVerifyWallet/useVerifyWallet.js';
|
|
|
27
27
|
import '../../../../context/VerificationContext/VerificationContext.js';
|
|
28
28
|
import 'react-dom';
|
|
29
29
|
import '../../../../context/WalletContext/WalletContext.js';
|
|
30
|
+
import '../../../../context/UserWalletsContext/UserWalletsContext.js';
|
|
30
31
|
import '../../useEmbeddedWallet/useSecureEnclaveEmbeddedWallet/constants.js';
|
|
31
32
|
import '../../../../context/ThemeContext/ThemeContext.js';
|
|
32
33
|
import '../../useUserUpdateRequest/useUpdateUser/userFieldsSchema.js';
|
|
@@ -42,7 +43,6 @@ import '../../../../context/UserFieldEditorContext/UserFieldEditorContext.js';
|
|
|
42
43
|
import '@dynamic-labs/rpc-providers';
|
|
43
44
|
import '../../../../store/state/environmentId.js';
|
|
44
45
|
import '../../../../store/state/walletConnectorOptions.js';
|
|
45
|
-
import '../../../../context/UserWalletsContext/UserWalletsContext.js';
|
|
46
46
|
import 'react-i18next';
|
|
47
47
|
import '../../../../components/Accordion/components/AccordionItem/AccordionItem.js';
|
|
48
48
|
import '../../../../components/Alert/Alert.js';
|
|
@@ -66,3 +66,4 @@ export { useSyncMfaFlow } from './useSyncMfaFlow';
|
|
|
66
66
|
export * from './useSmartWallets';
|
|
67
67
|
export { useEmbeddedWalletSessionKeys } from './useEmbeddedWalletSessionKeys';
|
|
68
68
|
export { useTelegramLogin } from './useTelegramLogin';
|
|
69
|
+
export { useEndUserWarning } from './useEndUserWarning';
|
|
@@ -145,6 +145,7 @@ const useAuthLayoutChecks = () => {
|
|
|
145
145
|
view.type !== 'wallet-claim-intro' &&
|
|
146
146
|
view.type !== 'passkey-recovery-add-email' &&
|
|
147
147
|
view.type !== 'global-wallet-confirm' &&
|
|
148
|
+
view.type !== 'global-wallet-malicious' &&
|
|
148
149
|
view.type !== 'global-wallet-info' &&
|
|
149
150
|
view.type !== 'mfa-choose-device' &&
|
|
150
151
|
view.type !== 'mfa-verification';
|
|
@@ -141,6 +141,7 @@ const useAuthLayoutChecks = () => {
|
|
|
141
141
|
view.type !== 'wallet-claim-intro' &&
|
|
142
142
|
view.type !== 'passkey-recovery-add-email' &&
|
|
143
143
|
view.type !== 'global-wallet-confirm' &&
|
|
144
|
+
view.type !== 'global-wallet-malicious' &&
|
|
144
145
|
view.type !== 'global-wallet-info' &&
|
|
145
146
|
view.type !== 'mfa-choose-device' &&
|
|
146
147
|
view.type !== 'mfa-verification';
|
|
@@ -40,7 +40,7 @@ var getEmbeddedWalletSessionExpiration = require('../../../functions/getEmbedded
|
|
|
40
40
|
require('../../../../store/state/projectSettings/projectSettings.cjs');
|
|
41
41
|
require('../../../../context/AccessDeniedContext/AccessDeniedContext.cjs');
|
|
42
42
|
require('../../../../context/AccountExistsContext/AccountExistsContext.cjs');
|
|
43
|
-
require('../../../../context/UserWalletsContext/UserWalletsContext.cjs');
|
|
43
|
+
var UserWalletsContext = require('../../../../context/UserWalletsContext/UserWalletsContext.cjs');
|
|
44
44
|
var errors = require('../../../constants/errors.cjs');
|
|
45
45
|
require('../../../../context/VerificationContext/VerificationContext.cjs');
|
|
46
46
|
require('react-dom');
|
|
@@ -52,6 +52,7 @@ var passkeyRecovery = require('../../../../views/Passkey/utils/passkeyRecovery/p
|
|
|
52
52
|
var validateTurnkeyProviderEnabled = require('../../../validations/validateTurnkeyProviderEnabled/validateTurnkeyProviderEnabled.cjs');
|
|
53
53
|
var usePasskeyRecovery = require('../../usePasskeyRecovery/usePasskeyRecovery.cjs');
|
|
54
54
|
var useSmartWallets = require('../../useSmartWallets/useSmartWallets.cjs');
|
|
55
|
+
var getNewVerifiedCredentialsFromDiff = require('../../../functions/getNewVerifiedCredentialsFromDiff/getNewVerifiedCredentialsFromDiff.cjs');
|
|
55
56
|
var constants = require('./constants.cjs');
|
|
56
57
|
var useTurnkey = require('./useTurnkey/useTurnkey.cjs');
|
|
57
58
|
require('../../../../context/ThemeContext/ThemeContext.cjs');
|
|
@@ -135,6 +136,7 @@ const isConnectorSessionKeyActive = (connector) => {
|
|
|
135
136
|
const useSecureEnclaveEmbeddedWallet = () => {
|
|
136
137
|
var _a, _b, _c, _d;
|
|
137
138
|
const { projectSettings, primaryWallet, user: user$1, environmentId, walletConnectorOptions, } = useInternalDynamicContext.useInternalDynamicContext();
|
|
139
|
+
const { addedWalletsIds } = UserWalletsContext.useInternalUserWallets();
|
|
138
140
|
const { createTurnkeyWallet } = useTurnkey.useTurnkey();
|
|
139
141
|
const { hasRecoveryEmail } = useIsTurnkeyWallet.useIsTurnkeyWallet();
|
|
140
142
|
const { createRootElement } = useElementById.useElementById();
|
|
@@ -207,10 +209,14 @@ const useSecureEnclaveEmbeddedWallet = () => {
|
|
|
207
209
|
const signedRequest = yield ((_j = wallet === null || wallet === void 0 ? void 0 : wallet.connector) === null || _j === void 0 ? void 0 : _j.stampCreateWalletAccountRequest({
|
|
208
210
|
request: requestToStamp,
|
|
209
211
|
}));
|
|
210
|
-
yield embeddedWallets.createEmbeddedWalletAccount({
|
|
212
|
+
const verifiedUser = yield embeddedWallets.createEmbeddedWalletAccount({
|
|
211
213
|
createEmbeddedWalletAccountRequest: signedRequest,
|
|
212
214
|
environmentId,
|
|
213
215
|
});
|
|
216
|
+
const newWalletIds = getNewVerifiedCredentialsFromDiff.getNewVerifiedCredentialsFromDiff(user$1.verifiedCredentials, verifiedUser.user.verifiedCredentials)
|
|
217
|
+
.filter(({ format }) => format === sdkApiCore.JwtVerifiedCredentialFormatEnum.Blockchain)
|
|
218
|
+
.map(({ id }) => id);
|
|
219
|
+
addedWalletsIds.current = addedWalletsIds.current.concat(newWalletIds);
|
|
214
220
|
return user.refreshUserJwt({ environmentId });
|
|
215
221
|
}), [
|
|
216
222
|
environmentId,
|
|
@@ -219,6 +225,7 @@ const useSecureEnclaveEmbeddedWallet = () => {
|
|
|
219
225
|
projectSettings,
|
|
220
226
|
shouldInitRecovery,
|
|
221
227
|
user$1,
|
|
228
|
+
addedWalletsIds,
|
|
222
229
|
]);
|
|
223
230
|
/**
|
|
224
231
|
* Creates or restores a secure enclave embedded wallet session
|
|
@@ -36,7 +36,7 @@ import { getEmbeddedWalletSessionExpiration } from '../../../functions/getEmbedd
|
|
|
36
36
|
import '../../../../store/state/projectSettings/projectSettings.js';
|
|
37
37
|
import '../../../../context/AccessDeniedContext/AccessDeniedContext.js';
|
|
38
38
|
import '../../../../context/AccountExistsContext/AccountExistsContext.js';
|
|
39
|
-
import '../../../../context/UserWalletsContext/UserWalletsContext.js';
|
|
39
|
+
import { useInternalUserWallets } from '../../../../context/UserWalletsContext/UserWalletsContext.js';
|
|
40
40
|
import { USER_NOT_LOGGED_IN, ACTIVE_SESSION, SESSION_RESTORED, INVALID_REQUEST, INVALID_WALLET_DATA, SESSION_CREATED, ERROR_SENDING_CODE, CODE_SENT } from '../../../constants/errors.js';
|
|
41
41
|
import '../../../../context/VerificationContext/VerificationContext.js';
|
|
42
42
|
import 'react-dom';
|
|
@@ -48,6 +48,7 @@ import { canRestoreEmbeddedWalletSession, restoreEmbeddedWalletSession } from '.
|
|
|
48
48
|
import { validateTurnkeyProviderEnabled } from '../../../validations/validateTurnkeyProviderEnabled/validateTurnkeyProviderEnabled.js';
|
|
49
49
|
import { usePasskeyRecovery } from '../../usePasskeyRecovery/usePasskeyRecovery.js';
|
|
50
50
|
import { useSmartWallets } from '../../useSmartWallets/useSmartWallets.js';
|
|
51
|
+
import { getNewVerifiedCredentialsFromDiff } from '../../../functions/getNewVerifiedCredentialsFromDiff/getNewVerifiedCredentialsFromDiff.js';
|
|
51
52
|
import { EmbeddedWalletVersion, iframeContainerId, iframeElementId, revealIframeElementId, revealIframeContainerId } from './constants.js';
|
|
52
53
|
import { useTurnkey } from './useTurnkey/useTurnkey.js';
|
|
53
54
|
import '../../../../context/ThemeContext/ThemeContext.js';
|
|
@@ -131,6 +132,7 @@ const isConnectorSessionKeyActive = (connector) => {
|
|
|
131
132
|
const useSecureEnclaveEmbeddedWallet = () => {
|
|
132
133
|
var _a, _b, _c, _d;
|
|
133
134
|
const { projectSettings, primaryWallet, user, environmentId, walletConnectorOptions, } = useInternalDynamicContext();
|
|
135
|
+
const { addedWalletsIds } = useInternalUserWallets();
|
|
134
136
|
const { createTurnkeyWallet } = useTurnkey();
|
|
135
137
|
const { hasRecoveryEmail } = useIsTurnkeyWallet();
|
|
136
138
|
const { createRootElement } = useElementById();
|
|
@@ -203,10 +205,14 @@ const useSecureEnclaveEmbeddedWallet = () => {
|
|
|
203
205
|
const signedRequest = yield ((_j = wallet === null || wallet === void 0 ? void 0 : wallet.connector) === null || _j === void 0 ? void 0 : _j.stampCreateWalletAccountRequest({
|
|
204
206
|
request: requestToStamp,
|
|
205
207
|
}));
|
|
206
|
-
yield createEmbeddedWalletAccount({
|
|
208
|
+
const verifiedUser = yield createEmbeddedWalletAccount({
|
|
207
209
|
createEmbeddedWalletAccountRequest: signedRequest,
|
|
208
210
|
environmentId,
|
|
209
211
|
});
|
|
212
|
+
const newWalletIds = getNewVerifiedCredentialsFromDiff(user.verifiedCredentials, verifiedUser.user.verifiedCredentials)
|
|
213
|
+
.filter(({ format }) => format === JwtVerifiedCredentialFormatEnum.Blockchain)
|
|
214
|
+
.map(({ id }) => id);
|
|
215
|
+
addedWalletsIds.current = addedWalletsIds.current.concat(newWalletIds);
|
|
210
216
|
return refreshUserJwt({ environmentId });
|
|
211
217
|
}), [
|
|
212
218
|
environmentId,
|
|
@@ -215,6 +221,7 @@ const useSecureEnclaveEmbeddedWallet = () => {
|
|
|
215
221
|
projectSettings,
|
|
216
222
|
shouldInitRecovery,
|
|
217
223
|
user,
|
|
224
|
+
addedWalletsIds,
|
|
218
225
|
]);
|
|
219
226
|
/**
|
|
220
227
|
* Creates or restores a secure enclave embedded wallet session
|
|
@@ -41,13 +41,26 @@ const p256Keygen = () => _tslib.__awaiter(void 0, void 0, void 0, function* () {
|
|
|
41
41
|
const compressedPublicKeyBuffer = compressRawPublicKey(rawPublicKey);
|
|
42
42
|
const privateKeyBuffer = base64urlDecode(privateKeyJwk.d);
|
|
43
43
|
return {
|
|
44
|
-
private: buf2hex(privateKeyBuffer),
|
|
44
|
+
private: buf2hex(privateKeyBuffer), // format for Turnkey API key stamper
|
|
45
|
+
privateJwk: privateKeyJwk, // format required for use in signing redcoast signatures
|
|
45
46
|
public: buf2hex(compressedPublicKeyBuffer),
|
|
46
|
-
|
|
47
|
+
publicUncompressed: buf2hex(rawPublicKey),
|
|
47
48
|
};
|
|
48
49
|
});
|
|
50
|
+
const p256Sign = (privateKeyJwk, message) => _tslib.__awaiter(void 0, void 0, void 0, function* () {
|
|
51
|
+
const privateKey = yield crypto.subtle.importKey('jwk', privateKeyJwk, {
|
|
52
|
+
name: 'ECDSA',
|
|
53
|
+
namedCurve: 'P-256',
|
|
54
|
+
}, false, ['sign']);
|
|
55
|
+
const signature = yield crypto.subtle.sign({
|
|
56
|
+
hash: 'SHA-256',
|
|
57
|
+
name: 'ECDSA',
|
|
58
|
+
}, privateKey, new TextEncoder().encode(message));
|
|
59
|
+
return buf2hex(signature);
|
|
60
|
+
});
|
|
49
61
|
|
|
50
62
|
exports.base64urlDecode = base64urlDecode;
|
|
51
63
|
exports.buf2hex = buf2hex;
|
|
52
64
|
exports.compressRawPublicKey = compressRawPublicKey;
|
|
53
65
|
exports.p256Keygen = p256Keygen;
|
|
66
|
+
exports.p256Sign = p256Sign;
|
|
@@ -3,6 +3,8 @@ export declare const base64urlDecode: (s?: string) => Uint8Array;
|
|
|
3
3
|
export declare const compressRawPublicKey: (rawPublicKey: ArrayBuffer) => ArrayBufferLike;
|
|
4
4
|
export declare const p256Keygen: () => Promise<{
|
|
5
5
|
private: string;
|
|
6
|
+
privateJwk: JsonWebKey;
|
|
6
7
|
public: string;
|
|
7
|
-
|
|
8
|
+
publicUncompressed: string;
|
|
8
9
|
}>;
|
|
10
|
+
export declare const p256Sign: (privateKeyJwk: JsonWebKey, message: string) => Promise<string>;
|
|
@@ -37,10 +37,22 @@ const p256Keygen = () => __awaiter(void 0, void 0, void 0, function* () {
|
|
|
37
37
|
const compressedPublicKeyBuffer = compressRawPublicKey(rawPublicKey);
|
|
38
38
|
const privateKeyBuffer = base64urlDecode(privateKeyJwk.d);
|
|
39
39
|
return {
|
|
40
|
-
private: buf2hex(privateKeyBuffer),
|
|
40
|
+
private: buf2hex(privateKeyBuffer), // format for Turnkey API key stamper
|
|
41
|
+
privateJwk: privateKeyJwk, // format required for use in signing redcoast signatures
|
|
41
42
|
public: buf2hex(compressedPublicKeyBuffer),
|
|
42
|
-
|
|
43
|
+
publicUncompressed: buf2hex(rawPublicKey),
|
|
43
44
|
};
|
|
44
45
|
});
|
|
46
|
+
const p256Sign = (privateKeyJwk, message) => __awaiter(void 0, void 0, void 0, function* () {
|
|
47
|
+
const privateKey = yield crypto.subtle.importKey('jwk', privateKeyJwk, {
|
|
48
|
+
name: 'ECDSA',
|
|
49
|
+
namedCurve: 'P-256',
|
|
50
|
+
}, false, ['sign']);
|
|
51
|
+
const signature = yield crypto.subtle.sign({
|
|
52
|
+
hash: 'SHA-256',
|
|
53
|
+
name: 'ECDSA',
|
|
54
|
+
}, privateKey, new TextEncoder().encode(message));
|
|
55
|
+
return buf2hex(signature);
|
|
56
|
+
});
|
|
45
57
|
|
|
46
|
-
export { base64urlDecode, buf2hex, compressRawPublicKey, p256Keygen };
|
|
58
|
+
export { base64urlDecode, buf2hex, compressRawPublicKey, p256Keygen, p256Sign };
|
|
@@ -6,9 +6,9 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
6
6
|
var _tslib = require('../../../../../_virtual/_tslib.cjs');
|
|
7
7
|
var React = require('react');
|
|
8
8
|
var utils = require('@dynamic-labs/utils');
|
|
9
|
-
var
|
|
9
|
+
var sdkApiCore = require('@dynamic-labs/sdk-api-core');
|
|
10
|
+
var localStorage = require('../../constants/localStorage.cjs');
|
|
10
11
|
var utils$1 = require('../useEmbeddedWallet/useSecureEnclaveEmbeddedWallet/utils.cjs');
|
|
11
|
-
require('@dynamic-labs/sdk-api-core');
|
|
12
12
|
require('../../../shared/logger.cjs');
|
|
13
13
|
require('@dynamic-labs/iconic');
|
|
14
14
|
require('@dynamic-labs/wallet-connector-core');
|
|
@@ -24,39 +24,95 @@ require('@dynamic-labs/multi-wallet');
|
|
|
24
24
|
require('react-international-phone');
|
|
25
25
|
require('../../../store/state/projectSettings/projectSettings.cjs');
|
|
26
26
|
var embeddedWallets = require('../../../data/api/embeddedWallets/embeddedWallets.cjs');
|
|
27
|
-
require('../../../store/state/user/user.cjs');
|
|
27
|
+
var user = require('../../../store/state/user/user.cjs');
|
|
28
28
|
require('../../../locale/locale.cjs');
|
|
29
|
+
var dynamicEvents = require('../../../events/dynamicEvents.cjs');
|
|
29
30
|
|
|
30
|
-
const useEmbeddedWalletSessionKeys = (environmentId) => {
|
|
31
|
+
const useEmbeddedWalletSessionKeys = ({ environmentId, projectSettings, }) => {
|
|
32
|
+
const { user: user$1 } = user.useUser();
|
|
33
|
+
// scenario 1: first time session register on first transaction.
|
|
34
|
+
// Keys will have been previously generated at this point in local storage but marked as not registered
|
|
35
|
+
// scenario 2: 2nd time register after expiration (key refresh)
|
|
36
|
+
// scenario 3: refresh/rerender page - session still active
|
|
37
|
+
// scenario 4: refresh/rerender page - session no longer active
|
|
31
38
|
const registerEmbeddedWalletSessionKey = (...args_1) => _tslib.__awaiter(void 0, [...args_1], void 0, function* ({ ignoreRestore = false, } = {}) {
|
|
32
39
|
// check if session keys are already stored in session storage
|
|
33
|
-
const sessionKeysSS = utils.StorageService.getItem(
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
40
|
+
const sessionKeysSS = utils.StorageService.getItem(localStorage.SECURE_ENCLAVE_WALLET_SESSION_KEYS, localStorage.SECURE_ENCLAVE_WALLET_SESSION_KEYS_STORAGE_OPTIONS);
|
|
41
|
+
const decodedSessionKeys = sessionKeysSS
|
|
42
|
+
? JSON.parse(Buffer.from(sessionKeysSS, 'base64').toString())
|
|
43
|
+
: undefined;
|
|
44
|
+
if (!decodedSessionKeys) {
|
|
45
|
+
dynamicEvents.dynamicEvents.emit('triggerLogout');
|
|
46
|
+
throw new Error('Could not find session keys. Re-authentication is required to create new session keys.');
|
|
37
47
|
}
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
48
|
+
if (!user$1) {
|
|
49
|
+
throw new Error('User not found');
|
|
50
|
+
}
|
|
51
|
+
if (decodedSessionKeys.expirationDate &&
|
|
52
|
+
new Date() <= new Date(decodedSessionKeys.expirationDate) &&
|
|
53
|
+
!ignoreRestore) {
|
|
54
|
+
// scenario 3
|
|
55
|
+
return decodedSessionKeys;
|
|
56
|
+
}
|
|
57
|
+
let publicKey;
|
|
58
|
+
let privateKey;
|
|
59
|
+
let privateKeyJwk;
|
|
60
|
+
let prevSessionKeySignature = undefined;
|
|
61
|
+
if (!decodedSessionKeys.registered) {
|
|
62
|
+
// scenario 1
|
|
63
|
+
({ publicKey, privateKey, privateKeyJwk } = decodedSessionKeys);
|
|
64
|
+
}
|
|
65
|
+
else {
|
|
66
|
+
// scenario 2 and 4
|
|
67
|
+
const { publicKey: nextPublicKey, privateKey: nextPrivateKey, privateKeyJwk: nextPrivateKeyJwk, } = yield generateSessionKey();
|
|
68
|
+
publicKey = nextPublicKey;
|
|
69
|
+
privateKey = nextPrivateKey;
|
|
70
|
+
privateKeyJwk = nextPrivateKeyJwk;
|
|
71
|
+
prevSessionKeySignature = yield utils$1.p256Sign(decodedSessionKeys.privateKeyJwk, user$1.sessionId);
|
|
72
|
+
}
|
|
73
|
+
let resp;
|
|
74
|
+
try {
|
|
75
|
+
resp = yield embeddedWallets.registerSessionKey({
|
|
76
|
+
environmentId,
|
|
77
|
+
prevSessionKeySignature,
|
|
78
|
+
publicKey,
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
catch (error) {
|
|
82
|
+
if (error instanceof utils.InvalidEmbeddedWalletSessionKeyError) {
|
|
83
|
+
// this can happen if the public key passed during initial registration
|
|
84
|
+
// does not match the root session public key that the backend expects
|
|
85
|
+
dynamicEvents.dynamicEvents.emit('triggerLogout');
|
|
86
|
+
}
|
|
87
|
+
throw error;
|
|
88
|
+
}
|
|
89
|
+
const expirationDate = new Date(resp.expiresAt * 1000);
|
|
90
|
+
utils.StorageService.setItem(localStorage.SECURE_ENCLAVE_WALLET_SESSION_KEYS, toEncodedFormat(publicKey, privateKey, privateKeyJwk, true, expirationDate), localStorage.SECURE_ENCLAVE_WALLET_SESSION_KEYS_STORAGE_OPTIONS);
|
|
91
|
+
return { expirationDate, privateKey, publicKey };
|
|
44
92
|
});
|
|
45
93
|
const generateSessionKey = () => _tslib.__awaiter(void 0, void 0, void 0, function* () {
|
|
46
|
-
const { private: privateKey, public: publicKey } = yield utils$1.p256Keygen();
|
|
94
|
+
const { private: privateKey, public: publicKey, privateJwk, } = yield utils$1.p256Keygen();
|
|
47
95
|
// convert to base64 and store the session keys in session storage
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
const sessionKeysBase64 = Buffer.from(sessionKeysString).toString('base64');
|
|
51
|
-
utils.StorageService.setItem(sessionStorage.SECURE_ENCLAVE_WALLET_SESSION_KEYS, sessionKeysBase64, sessionStorage.SECURE_ENCLAVE_WALLET_SESSION_KEYS_STORAGE_OPTIONS);
|
|
52
|
-
return { privateKey, publicKey };
|
|
96
|
+
utils.StorageService.setItem(localStorage.SECURE_ENCLAVE_WALLET_SESSION_KEYS, toEncodedFormat(publicKey, privateKey, privateJwk, false), localStorage.SECURE_ENCLAVE_WALLET_SESSION_KEYS_STORAGE_OPTIONS);
|
|
97
|
+
return { privateKey, privateKeyJwk: privateJwk, publicKey };
|
|
53
98
|
});
|
|
54
|
-
const
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
99
|
+
const shouldRegisterSessionKeysOnSignin = () => {
|
|
100
|
+
var _a;
|
|
101
|
+
return ((_a = projectSettings === null || projectSettings === void 0 ? void 0 : projectSettings.sdk.embeddedWallets) === null || _a === void 0 ? void 0 : _a.defaultWalletVersion) ===
|
|
102
|
+
sdkApiCore.EmbeddedWalletVersionEnum.V2;
|
|
103
|
+
};
|
|
104
|
+
const toEncodedFormat = (publicKey, privateKey, privateKeyJwk, registered, expirationDate) => {
|
|
105
|
+
const sessionKeys = {
|
|
106
|
+
expirationDate,
|
|
107
|
+
privateKey,
|
|
108
|
+
privateKeyJwk,
|
|
109
|
+
publicKey,
|
|
110
|
+
registered,
|
|
111
|
+
};
|
|
112
|
+
const sessionKeysString = JSON.stringify(sessionKeys);
|
|
113
|
+
return Buffer.from(sessionKeysString).toString('base64');
|
|
114
|
+
};
|
|
115
|
+
const removeSessionKey = React.useCallback(() => utils.StorageService.removeItem(localStorage.SECURE_ENCLAVE_WALLET_SESSION_KEYS, localStorage.SECURE_ENCLAVE_WALLET_SESSION_KEYS_STORAGE_OPTIONS), []);
|
|
60
116
|
return {
|
|
61
117
|
generateSessionKey,
|
|
62
118
|
registerEmbeddedWalletSessionKey,
|
|
@@ -1,11 +1,28 @@
|
|
|
1
|
-
|
|
1
|
+
import { ProjectSettings } from '@dynamic-labs/sdk-api-core';
|
|
2
|
+
type SessionKey = {
|
|
3
|
+
publicKey: string;
|
|
4
|
+
privateKey: string;
|
|
5
|
+
privateKeyJwk: JsonWebKey;
|
|
6
|
+
registered: boolean;
|
|
7
|
+
expirationDate?: Date;
|
|
8
|
+
};
|
|
9
|
+
export declare const useEmbeddedWalletSessionKeys: ({ environmentId, projectSettings, }: {
|
|
10
|
+
environmentId: string;
|
|
11
|
+
projectSettings?: ProjectSettings;
|
|
12
|
+
}) => {
|
|
2
13
|
generateSessionKey: () => Promise<{
|
|
3
14
|
privateKey: string;
|
|
15
|
+
privateKeyJwk: JsonWebKey;
|
|
4
16
|
publicKey: string;
|
|
5
17
|
}>;
|
|
6
18
|
registerEmbeddedWalletSessionKey: ({ ignoreRestore, }?: {
|
|
7
19
|
ignoreRestore?: boolean;
|
|
8
|
-
}) => Promise<
|
|
20
|
+
}) => Promise<SessionKey | {
|
|
21
|
+
expirationDate: Date;
|
|
22
|
+
privateKey: string;
|
|
23
|
+
publicKey: string;
|
|
24
|
+
}>;
|
|
9
25
|
removeSessionKey: () => void;
|
|
10
26
|
shouldRegisterSessionKeysOnSignin: () => boolean;
|
|
11
27
|
};
|
|
28
|
+
export {};
|