@dynamic-labs/sdk-react-core 4.51.0 → 4.52.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 (50) hide show
  1. package/CHANGELOG.md +23 -0
  2. package/package.cjs +3 -3
  3. package/package.js +3 -3
  4. package/package.json +14 -14
  5. package/src/lib/context/DynamicContext/DynamicContext.cjs +13 -12
  6. package/src/lib/context/DynamicContext/DynamicContext.js +13 -12
  7. package/src/lib/context/DynamicContext/types/SettingsOverrides.d.ts +10 -0
  8. package/src/lib/data/api/constants.cjs +12 -0
  9. package/src/lib/data/api/constants.d.ts +3 -0
  10. package/src/lib/data/api/constants.js +6 -0
  11. package/src/lib/data/api/embeddedWallets/embeddedWallets.cjs +12 -1
  12. package/src/lib/data/api/embeddedWallets/embeddedWallets.js +12 -1
  13. package/src/lib/data/api/user/user.cjs +19 -0
  14. package/src/lib/data/api/user/user.d.ts +5 -0
  15. package/src/lib/data/api/user/user.js +19 -1
  16. package/src/lib/shared/utils/functions/chain/getChainIcon.cjs +1 -0
  17. package/src/lib/shared/utils/functions/chain/getChainIcon.js +2 -1
  18. package/src/lib/utils/constants/values.cjs +2 -0
  19. package/src/lib/utils/constants/values.js +2 -0
  20. package/src/lib/utils/functions/clientSessionKeys/getClientSessionKeys.cjs +33 -1
  21. package/src/lib/utils/functions/clientSessionKeys/getClientSessionKeys.d.ts +11 -0
  22. package/src/lib/utils/functions/clientSessionKeys/getClientSessionKeys.js +32 -2
  23. package/src/lib/utils/functions/compareChains/compareChains.cjs +1 -0
  24. package/src/lib/utils/functions/compareChains/compareChains.js +1 -0
  25. package/src/lib/utils/hooks/useAuthenticatePasskeyMFA/useAuthenticatePasskeyMFA.cjs +1 -1
  26. package/src/lib/utils/hooks/useAuthenticatePasskeyMFA/useAuthenticatePasskeyMFA.js +1 -1
  27. package/src/lib/utils/hooks/useGetTransactionHistory/useGetTransactionHistory.d.ts +29 -0
  28. package/src/lib/utils/hooks/useIsMfaRequiredForAction/useIsMfaRequiredForAction.cjs +1 -4
  29. package/src/lib/utils/hooks/useIsMfaRequiredForAction/useIsMfaRequiredForAction.js +1 -4
  30. package/src/lib/utils/hooks/useNetworkConfigurationsFromProjectSettings/useNetworkConfigurationsFromProjectSettings.cjs +7 -2
  31. package/src/lib/utils/hooks/useNetworkConfigurationsFromProjectSettings/useNetworkConfigurationsFromProjectSettings.d.ts +2 -1
  32. package/src/lib/utils/hooks/useNetworkConfigurationsFromProjectSettings/useNetworkConfigurationsFromProjectSettings.js +7 -2
  33. package/src/lib/utils/hooks/useRegisterPasskey/useRegisterPasskey.cjs +8 -1
  34. package/src/lib/utils/hooks/useRegisterPasskey/useRegisterPasskey.js +8 -1
  35. package/src/lib/utils/hooks/useSocialAccounts/useSocialAccounts.cjs +2 -1
  36. package/src/lib/utils/hooks/useSocialAccounts/useSocialAccounts.d.ts +4 -1
  37. package/src/lib/utils/hooks/useSocialAccounts/useSocialAccounts.js +2 -1
  38. package/src/lib/utils/hooks/useSocialAuth/useSocialAuth.cjs +1 -1
  39. package/src/lib/utils/hooks/useSocialAuth/useSocialAuth.d.ts +1 -1
  40. package/src/lib/utils/hooks/useSocialAuth/useSocialAuth.js +1 -1
  41. package/src/lib/utils/hooks/useUserUpdateRequest/unlinkUserEmail/unlinkUserEmail.cjs +131 -0
  42. package/src/lib/utils/hooks/useUserUpdateRequest/unlinkUserEmail/unlinkUserEmail.d.ts +6 -0
  43. package/src/lib/utils/hooks/useUserUpdateRequest/unlinkUserEmail/unlinkUserEmail.js +127 -0
  44. package/src/lib/utils/hooks/useUserUpdateRequest/useUserUpdateRequest.cjs +3 -1
  45. package/src/lib/utils/hooks/useUserUpdateRequest/useUserUpdateRequest.d.ts +2 -0
  46. package/src/lib/utils/hooks/useUserUpdateRequest/useUserUpdateRequest.js +3 -1
  47. package/src/lib/views/SendBalanceView/SendBalanceView.cjs +14 -2
  48. package/src/lib/views/SendBalanceView/SendBalanceView.js +15 -3
  49. package/src/lib/views/TransactionConfirmationView/TransactionConfirmationView.cjs +8 -1
  50. package/src/lib/views/TransactionConfirmationView/TransactionConfirmationView.js +8 -1
@@ -14,7 +14,20 @@ import '../../constants/colors.js';
14
14
  import '../../constants/values.js';
15
15
  import '@dynamic-labs/sdk-api-core';
16
16
  import '../../../shared/consts/index.js';
17
+ import '@dynamic-labs-sdk/client/core';
18
+ import '../../../client/client.js';
19
+ import '@dynamic-labs-sdk/client';
20
+ import '../../../config/ApiEndpoint.js';
21
+ import '@dynamic-labs/multi-wallet';
22
+ import 'react-international-phone';
23
+ import '../../../store/state/nonce/nonce.js';
24
+ import '../../../store/state/dynamicContextProps/dynamicContextProps.js';
25
+ import '../../../store/state/primaryWalletId/primaryWalletId.js';
26
+ import '../../../store/state/connectedWalletsInfo/connectedWalletsInfo.js';
17
27
  import { clientSessionKeyLogScope } from './constants.js';
28
+ import '../../../events/dynamicEvents.js';
29
+ import { getNonce } from '../../../data/api/utils.js';
30
+ import '@dynamic-labs/locale';
18
31
 
19
32
  const getClientSessionKeys = () => {
20
33
  const sessionKeysSS = StorageService.getItem(CLIENT_SESSION_KEYS, CLIENT_SESSION_KEYS_STORAGE_OPTIONS);
@@ -38,6 +51,7 @@ const generateKeyPair = () => __awaiter(void 0, void 0, void 0, function* () {
38
51
  return { privateKey, privateKeyJwk: privateJwk, publicKey };
39
52
  });
40
53
  const generateSessionSignature = (_a) => __awaiter(void 0, [_a], void 0, function* ({ privateKeyJwk, sessionId, }) { return p256Sign(privateKeyJwk, sessionId); });
54
+ const generateNonceSignature = (_b) => __awaiter(void 0, [_b], void 0, function* ({ privateKeyJwk, nonce, }) { return p256Sign(privateKeyJwk, nonce); });
41
55
  const generateClientSessionKeys = () => __awaiter(void 0, void 0, void 0, function* () {
42
56
  // check if session keys are already stored in session storage
43
57
  const clientSessionKeysSS = getClientSessionKeys();
@@ -58,7 +72,7 @@ const getClientSessionPublicKey = () => {
58
72
  const clientSessionKeys = getClientSessionKeys();
59
73
  return clientSessionKeys === null || clientSessionKeys === void 0 ? void 0 : clientSessionKeys.publicKey;
60
74
  };
61
- const getClientSessionSignature = (_b) => __awaiter(void 0, [_b], void 0, function* ({ sessionId, }) {
75
+ const getClientSessionSignature = (_c) => __awaiter(void 0, [_c], void 0, function* ({ sessionId, }) {
62
76
  const clientSessionKeys = getClientSessionKeys();
63
77
  if (!clientSessionKeys) {
64
78
  throw new Error('Client session keys not found');
@@ -70,6 +84,22 @@ const getClientSessionSignature = (_b) => __awaiter(void 0, [_b], void 0, functi
70
84
  });
71
85
  return { publicKey, sessionSignature };
72
86
  });
87
+ const getClientSessionNonceSignature = (_d) => __awaiter(void 0, [_d], void 0, function* ({ environmentId, }) {
88
+ const clientSessionKeys = getClientSessionKeys();
89
+ if (!clientSessionKeys) {
90
+ throw new Error('Client session keys not found');
91
+ }
92
+ const { publicKey, privateKeyJwk } = clientSessionKeys;
93
+ const nonce = yield getNonce(environmentId);
94
+ if (!nonce) {
95
+ throw new Error('Nonce not found');
96
+ }
97
+ const nonceSignature = yield generateNonceSignature({
98
+ nonce,
99
+ privateKeyJwk,
100
+ });
101
+ return { nonce, nonceSignature, publicKey };
102
+ });
73
103
  const clearClientSessionKeys = () => {
74
104
  const clientSessionKeys = getClientSessionKeys();
75
105
  logger.instrument('[SessionChaining] Clearing client session keys', {
@@ -80,4 +110,4 @@ const clearClientSessionKeys = () => {
80
110
  StorageService.removeItem(CLIENT_SESSION_KEYS, CLIENT_SESSION_KEYS_STORAGE_OPTIONS);
81
111
  };
82
112
 
83
- export { clearClientSessionKeys, generateClientSessionKeys, generateKeyPair, generateSessionSignature, getClientSessionKeys, getClientSessionPublicKey, getClientSessionSignature };
113
+ export { clearClientSessionKeys, generateClientSessionKeys, generateKeyPair, generateNonceSignature, generateSessionSignature, getClientSessionKeys, getClientSessionNonceSignature, getClientSessionPublicKey, getClientSessionSignature };
@@ -8,6 +8,7 @@ const synonyms = {
8
8
  eip155: 'EVM',
9
9
  solana: 'SOL',
10
10
  sui: 'SUI',
11
+ ton: 'TON',
11
12
  };
12
13
  for (const chain in synonyms)
13
14
  synonyms[synonyms[chain]] = chain;
@@ -4,6 +4,7 @@ const synonyms = {
4
4
  eip155: 'EVM',
5
5
  solana: 'SOL',
6
6
  sui: 'SUI',
7
+ ton: 'TON',
7
8
  };
8
9
  for (const chain in synonyms)
9
10
  synonyms[synonyms[chain]] = chain;
@@ -36,6 +36,6 @@ const useAuthenticatePasskeyMFA = () => React.useCallback((props) => _tslib.__aw
36
36
  mfaToken: result.mfaToken,
37
37
  });
38
38
  return result.mfaToken;
39
- }), [dynamicEvents.dynamicEvents]);
39
+ }), []);
40
40
 
41
41
  exports.useAuthenticatePasskeyMFA = useAuthenticatePasskeyMFA;
@@ -32,6 +32,6 @@ const useAuthenticatePasskeyMFA = () => useCallback((props) => __awaiter(void 0,
32
32
  mfaToken: result.mfaToken,
33
33
  });
34
34
  return result.mfaToken;
35
- }), [dynamicEvents]);
35
+ }), []);
36
36
 
37
37
  export { useAuthenticatePasskeyMFA };
@@ -0,0 +1,29 @@
1
+ import { GetTransactionHistoryParams, GetTransactionHistoryResponse } from '@dynamic-labs-sdk/client';
2
+ /**
3
+ * Get transaction history
4
+ *
5
+ * @returns Function to get transaction history for the current user
6
+ *
7
+ * @example
8
+ * ```tsx
9
+ * const App = () => {
10
+ * const getTransactionHistory = useGetTransactionHistory();
11
+ * const [transactionHistory, setTransactionHistory] = useState<GetTransactionHistoryResponse>();
12
+ *
13
+ * return (
14
+ * <button
15
+ * onClick={async () => {
16
+ * const transactionHistory = await getTransactionHistory({
17
+ * address: 'wallet-address',
18
+ * networkId: 101,
19
+ * chain: ChainEnum.Sol,
20
+ * });
21
+ * setTransactionHistory(transactionHistory);
22
+ * }}
23
+ * >
24
+ * Get transaction history
25
+ * </button>
26
+ * );
27
+ * };
28
+ */
29
+ export declare const useGetTransactionHistory: () => ((props: GetTransactionHistoryParams) => Promise<GetTransactionHistoryResponse>);
@@ -26,9 +26,6 @@ var client = require('@dynamic-labs-sdk/client');
26
26
  * );
27
27
  * }
28
28
  */
29
- const useIsMfaRequiredForAction = () => React.useCallback((_a) => _tslib.__awaiter(void 0, [_a], void 0, function* ({ mfaAction }) {
30
- const response = yield client.isMfaRequiredForAction({ mfaAction });
31
- return response !== null && response !== void 0 ? response : false;
32
- }), []);
29
+ const useIsMfaRequiredForAction = () => React.useCallback((_a) => _tslib.__awaiter(void 0, [_a], void 0, function* ({ mfaAction }) { return client.isMfaRequiredForAction({ mfaAction }); }), []);
33
30
 
34
31
  exports.useIsMfaRequiredForAction = useIsMfaRequiredForAction;
@@ -22,9 +22,6 @@ import { isMfaRequiredForAction } from '@dynamic-labs-sdk/client';
22
22
  * );
23
23
  * }
24
24
  */
25
- const useIsMfaRequiredForAction = () => useCallback((_a) => __awaiter(void 0, [_a], void 0, function* ({ mfaAction }) {
26
- const response = yield isMfaRequiredForAction({ mfaAction });
27
- return response !== null && response !== void 0 ? response : false;
28
- }), []);
25
+ const useIsMfaRequiredForAction = () => useCallback((_a) => __awaiter(void 0, [_a], void 0, function* ({ mfaAction }) { return isMfaRequiredForAction({ mfaAction }); }), []);
29
26
 
30
27
  export { useIsMfaRequiredForAction };
@@ -5,8 +5,8 @@ Object.defineProperty(exports, '__esModule', { value: true });
5
5
 
6
6
  var React = require('react');
7
7
 
8
- const useNetworkConfigurationsFromProjectSettings = ({ projectSettings, cosmosNetworkOverrides, evmNetworksOverrides, solanaNetworksOverrides, tronNetworksOverrides, aptosNetworksOverrides, }) => React.useMemo(() => {
9
- var _a, _b, _c, _d, _e, _f, _g, _h;
8
+ const useNetworkConfigurationsFromProjectSettings = ({ projectSettings, cosmosNetworkOverrides, evmNetworksOverrides, solanaNetworksOverrides, tronNetworksOverrides, aptosNetworksOverrides, tonNetworksOverrides, }) => React.useMemo(() => {
9
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j;
10
10
  const networks = projectSettings === null || projectSettings === void 0 ? void 0 : projectSettings.networks;
11
11
  if (!networks)
12
12
  return {};
@@ -18,6 +18,7 @@ const useNetworkConfigurationsFromProjectSettings = ({ projectSettings, cosmosNe
18
18
  const sui = networks.find((configurations) => configurations.chainName === 'sui');
19
19
  const tron = networks.find((configurations) => configurations.chainName === 'tron');
20
20
  const aptos = networks.find((configurations) => configurations.chainName === 'aptos');
21
+ const ton = networks.find((configurations) => configurations.chainName === 'ton');
21
22
  let cosmosNetworks = (_a = cosmos === null || cosmos === void 0 ? void 0 : cosmos.networks) === null || _a === void 0 ? void 0 : _a.map((net) => createNetwork(net, Number.parseInt));
22
23
  cosmosNetworks = overrideNetworks(cosmosNetworkOverrides, cosmosNetworks);
23
24
  let evmNetworks = (_b = evm === null || evm === void 0 ? void 0 : evm.networks) === null || _b === void 0 ? void 0 : _b.map((net) => createNetwork(net, Number.parseInt));
@@ -39,6 +40,8 @@ const useNetworkConfigurationsFromProjectSettings = ({ projectSettings, cosmosNe
39
40
  tronNetworks = overrideNetworks(tronNetworksOverrides, tronNetworks);
40
41
  let aptosNetworks = (_h = aptos === null || aptos === void 0 ? void 0 : aptos.networks) === null || _h === void 0 ? void 0 : _h.map((net) => createNetwork(net));
41
42
  aptosNetworks = overrideNetworks(aptosNetworksOverrides, aptosNetworks);
43
+ let tonNetworks = (_j = ton === null || ton === void 0 ? void 0 : ton.networks) === null || _j === void 0 ? void 0 : _j.map((net) => createNetwork(net));
44
+ tonNetworks = overrideNetworks(tonNetworksOverrides, tonNetworks);
42
45
  const networkConfigurations = {
43
46
  aptos: aptosNetworks,
44
47
  cosmos: cosmosNetworks,
@@ -47,6 +50,7 @@ const useNetworkConfigurationsFromProjectSettings = ({ projectSettings, cosmosNe
47
50
  solana: solanaNetworks,
48
51
  starknet: starknetNetworks,
49
52
  sui: suiNetworks,
53
+ ton: tonNetworks,
50
54
  tron: tronNetworks,
51
55
  };
52
56
  return networkConfigurations;
@@ -57,6 +61,7 @@ const useNetworkConfigurationsFromProjectSettings = ({ projectSettings, cosmosNe
57
61
  solanaNetworksOverrides,
58
62
  tronNetworksOverrides,
59
63
  aptosNetworksOverrides,
64
+ tonNetworksOverrides,
60
65
  ]);
61
66
  const createNetwork = (network, parser = (input) => input) => {
62
67
  const result = {
@@ -7,6 +7,7 @@ type UseNetworkConfigurationsFromProjectSettingsProps = {
7
7
  solanaNetworksOverrides?: NetworksOverrides;
8
8
  tronNetworksOverrides?: NetworksOverrides;
9
9
  aptosNetworksOverrides?: NetworksOverrides;
10
+ tonNetworksOverrides?: NetworksOverrides;
10
11
  };
11
- export declare const useNetworkConfigurationsFromProjectSettings: ({ projectSettings, cosmosNetworkOverrides, evmNetworksOverrides, solanaNetworksOverrides, tronNetworksOverrides, aptosNetworksOverrides, }: UseNetworkConfigurationsFromProjectSettingsProps) => {};
12
+ export declare const useNetworkConfigurationsFromProjectSettings: ({ projectSettings, cosmosNetworkOverrides, evmNetworksOverrides, solanaNetworksOverrides, tronNetworksOverrides, aptosNetworksOverrides, tonNetworksOverrides, }: UseNetworkConfigurationsFromProjectSettingsProps) => {};
12
13
  export {};
@@ -1,8 +1,8 @@
1
1
  'use client'
2
2
  import { useMemo } from 'react';
3
3
 
4
- const useNetworkConfigurationsFromProjectSettings = ({ projectSettings, cosmosNetworkOverrides, evmNetworksOverrides, solanaNetworksOverrides, tronNetworksOverrides, aptosNetworksOverrides, }) => useMemo(() => {
5
- var _a, _b, _c, _d, _e, _f, _g, _h;
4
+ const useNetworkConfigurationsFromProjectSettings = ({ projectSettings, cosmosNetworkOverrides, evmNetworksOverrides, solanaNetworksOverrides, tronNetworksOverrides, aptosNetworksOverrides, tonNetworksOverrides, }) => useMemo(() => {
5
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j;
6
6
  const networks = projectSettings === null || projectSettings === void 0 ? void 0 : projectSettings.networks;
7
7
  if (!networks)
8
8
  return {};
@@ -14,6 +14,7 @@ const useNetworkConfigurationsFromProjectSettings = ({ projectSettings, cosmosNe
14
14
  const sui = networks.find((configurations) => configurations.chainName === 'sui');
15
15
  const tron = networks.find((configurations) => configurations.chainName === 'tron');
16
16
  const aptos = networks.find((configurations) => configurations.chainName === 'aptos');
17
+ const ton = networks.find((configurations) => configurations.chainName === 'ton');
17
18
  let cosmosNetworks = (_a = cosmos === null || cosmos === void 0 ? void 0 : cosmos.networks) === null || _a === void 0 ? void 0 : _a.map((net) => createNetwork(net, Number.parseInt));
18
19
  cosmosNetworks = overrideNetworks(cosmosNetworkOverrides, cosmosNetworks);
19
20
  let evmNetworks = (_b = evm === null || evm === void 0 ? void 0 : evm.networks) === null || _b === void 0 ? void 0 : _b.map((net) => createNetwork(net, Number.parseInt));
@@ -35,6 +36,8 @@ const useNetworkConfigurationsFromProjectSettings = ({ projectSettings, cosmosNe
35
36
  tronNetworks = overrideNetworks(tronNetworksOverrides, tronNetworks);
36
37
  let aptosNetworks = (_h = aptos === null || aptos === void 0 ? void 0 : aptos.networks) === null || _h === void 0 ? void 0 : _h.map((net) => createNetwork(net));
37
38
  aptosNetworks = overrideNetworks(aptosNetworksOverrides, aptosNetworks);
39
+ let tonNetworks = (_j = ton === null || ton === void 0 ? void 0 : ton.networks) === null || _j === void 0 ? void 0 : _j.map((net) => createNetwork(net));
40
+ tonNetworks = overrideNetworks(tonNetworksOverrides, tonNetworks);
38
41
  const networkConfigurations = {
39
42
  aptos: aptosNetworks,
40
43
  cosmos: cosmosNetworks,
@@ -43,6 +46,7 @@ const useNetworkConfigurationsFromProjectSettings = ({ projectSettings, cosmosNe
43
46
  solana: solanaNetworks,
44
47
  starknet: starknetNetworks,
45
48
  sui: suiNetworks,
49
+ ton: tonNetworks,
46
50
  tron: tronNetworks,
47
51
  };
48
52
  return networkConfigurations;
@@ -53,6 +57,7 @@ const useNetworkConfigurationsFromProjectSettings = ({ projectSettings, cosmosNe
53
57
  solanaNetworksOverrides,
54
58
  tronNetworksOverrides,
55
59
  aptosNetworksOverrides,
60
+ tonNetworksOverrides,
56
61
  ]);
57
62
  const createNetwork = (network, parser = (input) => input) => {
58
63
  const result = {
@@ -6,6 +6,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
6
6
  var _tslib = require('../../../../../_virtual/_tslib.cjs');
7
7
  var React = require('react');
8
8
  var client = require('@dynamic-labs-sdk/client');
9
+ var dynamicEvents = require('../../../events/dynamicEvents.cjs');
9
10
 
10
11
  /**
11
12
  * Register passkey
@@ -26,6 +27,12 @@ var client = require('@dynamic-labs-sdk/client');
26
27
  * );
27
28
  * }
28
29
  */
29
- const useRegisterPasskey = () => React.useCallback(() => _tslib.__awaiter(void 0, void 0, void 0, function* () { return client.registerPasskey(); }), []);
30
+ const useRegisterPasskey = () => React.useCallback(() => _tslib.__awaiter(void 0, void 0, void 0, function* () {
31
+ const response = yield client.registerPasskey();
32
+ dynamicEvents.dynamicEvents.emit('mfaCompletionSuccess', {
33
+ mfaToken: response.mfaToken,
34
+ });
35
+ return response;
36
+ }), []);
30
37
 
31
38
  exports.useRegisterPasskey = useRegisterPasskey;
@@ -2,6 +2,7 @@
2
2
  import { __awaiter } from '../../../../../_virtual/_tslib.js';
3
3
  import { useCallback } from 'react';
4
4
  import { registerPasskey } from '@dynamic-labs-sdk/client';
5
+ import { dynamicEvents } from '../../../events/dynamicEvents.js';
5
6
 
6
7
  /**
7
8
  * Register passkey
@@ -22,6 +23,12 @@ import { registerPasskey } from '@dynamic-labs-sdk/client';
22
23
  * );
23
24
  * }
24
25
  */
25
- const useRegisterPasskey = () => useCallback(() => __awaiter(void 0, void 0, void 0, function* () { return registerPasskey(); }), []);
26
+ const useRegisterPasskey = () => useCallback(() => __awaiter(void 0, void 0, void 0, function* () {
27
+ const response = yield registerPasskey();
28
+ dynamicEvents.emit('mfaCompletionSuccess', {
29
+ mfaToken: response.mfaToken,
30
+ });
31
+ return response;
32
+ }), []);
26
33
 
27
34
  export { useRegisterPasskey };
@@ -108,7 +108,7 @@ require('../../../shared/utils/functions/getInitialUrl/getInitialUrl.cjs');
108
108
  var useInternalDynamicContext = require('../../../context/DynamicContext/useDynamicContext/useInternalDynamicContext/useInternalDynamicContext.cjs');
109
109
 
110
110
  // Hook exposed to customers and used internally to handle social account linking
111
- const useSocialAccounts = () => {
111
+ const useSocialAccounts = ({ onError } = {}) => {
112
112
  var _a;
113
113
  const { environmentId, user, projectSettings } = useInternalDynamicContext.useInternalDynamicContext();
114
114
  const { pushView } = ViewContext.useViewContext();
@@ -132,6 +132,7 @@ const useSocialAccounts = () => {
132
132
  },
133
133
  }), [pushView, setSocialProvider]);
134
134
  const { handleError, setError, checkValidProvider, error, connectSocialAccount, } = useSocialAuth.useSocialAuth({
135
+ onError,
135
136
  onFarcasterUrl: handleFarcasterUrl,
136
137
  });
137
138
  const verifiedOAuthCredentialsMap = React.useMemo(() => {
@@ -21,7 +21,10 @@ type ConnectSocialProps = {
21
21
  */
22
22
  payingWithDynamic?: PayWithDynamicProps;
23
23
  };
24
- export declare const useSocialAccounts: () => {
24
+ type UseSocialAccountsProps = {
25
+ onError?: (error: unknown) => void;
26
+ };
27
+ export declare const useSocialAccounts: ({ onError }?: UseSocialAccountsProps) => {
25
28
  readonly error: import("@dynamic-labs/types").SocialOAuthError | undefined;
26
29
  readonly getAllLinkedAccounts: () => SocialAccountInformation[];
27
30
  readonly getLinkedAccountInformation: (provider: ProviderEnum, verifiedCredentialId?: string) => SocialAccountInformation | undefined;
@@ -104,7 +104,7 @@ import '../../../shared/utils/functions/getInitialUrl/getInitialUrl.js';
104
104
  import { useInternalDynamicContext } from '../../../context/DynamicContext/useDynamicContext/useInternalDynamicContext/useInternalDynamicContext.js';
105
105
 
106
106
  // Hook exposed to customers and used internally to handle social account linking
107
- const useSocialAccounts = () => {
107
+ const useSocialAccounts = ({ onError } = {}) => {
108
108
  var _a;
109
109
  const { environmentId, user, projectSettings } = useInternalDynamicContext();
110
110
  const { pushView } = useViewContext();
@@ -128,6 +128,7 @@ const useSocialAccounts = () => {
128
128
  },
129
129
  }), [pushView, setSocialProvider]);
130
130
  const { handleError, setError, checkValidProvider, error, connectSocialAccount, } = useSocialAuth({
131
+ onError,
131
132
  onFarcasterUrl: handleFarcasterUrl,
132
133
  });
133
134
  const verifiedOAuthCredentialsMap = useMemo(() => {
@@ -159,7 +159,7 @@ const useSocialAuth = ({ onSettled, onError, onFarcasterUrl, }) => {
159
159
  }, [setContextError]);
160
160
  const onFailed = React.useCallback((provider, reason, options) => {
161
161
  setIsProcessing(false);
162
- onError === null || onError === void 0 ? void 0 : onError();
162
+ onError === null || onError === void 0 ? void 0 : onError(reason.error);
163
163
  onSettled === null || onSettled === void 0 ? void 0 : onSettled();
164
164
  if (provider && (options === null || options === void 0 ? void 0 : options.raiseAuthFailure))
165
165
  dynamicEvents.dynamicEvents.emit('authFailure', {
@@ -5,7 +5,7 @@ import { PayWithDynamicProps } from '../usePayWithDynamic/usePayWithDynamic';
5
5
  export type SocialAuthMode = 'link' | 'signin' | 'unlink';
6
6
  type UseSocialAuthProps = {
7
7
  onSettled?: () => void;
8
- onError?: () => void;
8
+ onError?: (error: unknown) => void;
9
9
  onFarcasterUrl?: (url: string) => void;
10
10
  };
11
11
  export type ConnectSocialAccountProps = {
@@ -155,7 +155,7 @@ const useSocialAuth = ({ onSettled, onError, onFarcasterUrl, }) => {
155
155
  }, [setContextError]);
156
156
  const onFailed = useCallback((provider, reason, options) => {
157
157
  setIsProcessing(false);
158
- onError === null || onError === void 0 ? void 0 : onError();
158
+ onError === null || onError === void 0 ? void 0 : onError(reason.error);
159
159
  onSettled === null || onSettled === void 0 ? void 0 : onSettled();
160
160
  if (provider && (options === null || options === void 0 ? void 0 : options.raiseAuthFailure))
161
161
  dynamicEvents.emit('authFailure', {
@@ -0,0 +1,131 @@
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
+ var sdkApiCore = require('@dynamic-labs/sdk-api-core');
10
+ require('../../../../context/DynamicContext/DynamicContext.cjs');
11
+ require('../../../../store/state/loadingAndLifecycle/loadingAndLifecycle.cjs');
12
+ require('@dynamic-labs/iconic');
13
+ require('@dynamic-labs/wallet-connector-core');
14
+ require('react/jsx-runtime');
15
+ require('../../../../context/ViewContext/ViewContext.cjs');
16
+ require('../../../../shared/logger.cjs');
17
+ require('@dynamic-labs/wallet-book');
18
+ require('../../../constants/colors.cjs');
19
+ require('../../../constants/values.cjs');
20
+ require('../../../../shared/consts/index.cjs');
21
+ require('../../../../events/dynamicEvents.cjs');
22
+ require('../../../../context/CaptchaContext/CaptchaContext.cjs');
23
+ require('../../../../context/ErrorContext/ErrorContext.cjs');
24
+ require('@dynamic-labs/multi-wallet');
25
+ require('react-international-phone');
26
+ require('../../../../store/state/nonce/nonce.cjs');
27
+ require('@dynamic-labs-sdk/client/core');
28
+ var client = require('../../../../client/client.cjs');
29
+ require('@dynamic-labs-sdk/client');
30
+ require('../../../../config/ApiEndpoint.cjs');
31
+ require('@dynamic-labs/locale');
32
+ var user = require('../../../../data/api/user/user.cjs');
33
+ require('../../../../store/state/dynamicContextProps/dynamicContextProps.cjs');
34
+ var primaryWalletId = require('../../../../store/state/primaryWalletId/primaryWalletId.cjs');
35
+ require('../../../../store/state/connectedWalletsInfo/connectedWalletsInfo.cjs');
36
+ require('../../../../context/AccessDeniedContext/AccessDeniedContext.cjs');
37
+ require('../../../../context/AccountExistsContext/AccountExistsContext.cjs');
38
+ require('../../../../context/UserWalletsContext/UserWalletsContext.cjs');
39
+ require('../../../../store/state/authMode/authMode.cjs');
40
+ require('../../../../context/VerificationContext/VerificationContext.cjs');
41
+ require('react-dom');
42
+ require('../../../functions/compareChains/compareChains.cjs');
43
+ require('../../../../views/Passkey/utils/findPrimaryEmbeddedChain/findPrimaryEmbeddedChain.cjs');
44
+ require('../../../../context/ThemeContext/ThemeContext.cjs');
45
+ require('../useUpdateUser/userFieldsSchema.cjs');
46
+ require('bs58');
47
+ require('@dynamic-labs/types');
48
+ require('../../../../context/SocialRedirectContext/SocialRedirectContext.cjs');
49
+ require('../../../../context/LoadingContext/LoadingContext.cjs');
50
+ require('../../../../context/WalletContext/WalletContext.cjs');
51
+ require('../../useEmbeddedWallet/useSecureEnclaveEmbeddedWallet/constants.cjs');
52
+ require('yup');
53
+ require('../../../../context/MockContext/MockContext.cjs');
54
+ require('../../../../views/CollectUserDataView/useFields.cjs');
55
+ require('../../../../context/FieldsStateContext/FieldsStateContext.cjs');
56
+ require('../../../../context/UserFieldEditorContext/UserFieldEditorContext.cjs');
57
+ require('@dynamic-labs/rpc-providers');
58
+ require('../../../../store/state/walletOptions/walletOptions.cjs');
59
+ require('react-i18next');
60
+ require('../../../../components/Accordion/components/AccordionItem/AccordionItem.cjs');
61
+ require('../../../../components/Alert/Alert.cjs');
62
+ require('../../../../components/ShadowDOM/ShadowDOM.cjs');
63
+ require('../../../../components/IconButton/IconButton.cjs');
64
+ require('../../../../components/InlineWidget/InlineWidget.cjs');
65
+ require('../../../../components/Input/Input.cjs');
66
+ require('../../../../components/IsBrowser/IsBrowser.cjs');
67
+ require('../../../../components/MenuList/Dropdown/Dropdown.cjs');
68
+ require('../../../../components/OverlayCard/OverlayCard.cjs');
69
+ require('../../../../components/Transition/ZoomTransition/ZoomTransition.cjs');
70
+ require('../../../../components/Transition/SlideInUpTransition/SlideInUpTransition.cjs');
71
+ require('../../../../components/Transition/OpacityTransition/OpacityTransition.cjs');
72
+ require('../../../../components/PasskeyCreatedSuccessBanner/PasskeyCreatedSuccessBanner.cjs');
73
+ require('../../../../components/Popper/Popper/Popper.cjs');
74
+ require('../../../../components/Popper/PopperContext/PopperContext.cjs');
75
+ require('react-focus-lock');
76
+ require('qrcode');
77
+ require('formik');
78
+ require('../../useSubdomainCheck/useSubdomainCheck.cjs');
79
+ require('../../../../context/WalletGroupContext/WalletGroupContext.cjs');
80
+ require('../../../../context/IpConfigurationContext/IpConfigurationContext.cjs');
81
+ require('../../../../context/ConnectWithOtpContext/ConnectWithOtpContext.cjs');
82
+ require('../../../../widgets/DynamicBridgeWidget/views/WalletsView/components/SecondaryWallets/SecondaryWallets.cjs');
83
+ require('@hcaptcha/react-hcaptcha');
84
+ require('../../../../widgets/DynamicWidget/context/DynamicWidgetContext.cjs');
85
+ require('../../../../widgets/DynamicWidget/helpers/convertExchangeKeyAndProviderEnum.cjs');
86
+ require('../../../../views/ExchangeWhitelistWarning/ExchangeWhitelistWarning.cjs');
87
+ require('../../../../context/ErrorContext/hooks/useErrorText/useErrorText.cjs');
88
+ require('../../../../context/FooterAnimationContext/index.cjs');
89
+ require('../../../../views/MfaChooseDeviceView/useGetMfaOptions/useGetMfaOptions.cjs');
90
+ require('../../../../context/PasskeyContext/PasskeyContext.cjs');
91
+ require('../../../../context/OnrampContext/OnrampContext.cjs');
92
+ require('../../../../store/state/sendBalances.cjs');
93
+ require('../../../../store/state/connectorsInitializing/connectorsInitializing.cjs');
94
+ require('../../../../components/OverlayCardBase/OverlayCardTarget/OverlayCardTarget.cjs');
95
+ require('../../../../widgets/DynamicWidget/components/DynamicWidgetHeader/DynamicWidgetHeader.cjs');
96
+ require('../../../../views/TransactionConfirmationView/TransactionConfirmationView.cjs');
97
+ require('../../../../widgets/DynamicWidget/components/PasskeyCard/PasskeyCard.cjs');
98
+ require('../../../../widgets/DynamicWidget/views/CryptoComOnramp/CryptoComOnramp.cjs');
99
+ require('../../../../../index.cjs');
100
+ require('../../../../widgets/DynamicWidget/views/ReceiveWalletFunds/ReceiveWalletFunds.cjs');
101
+ require('../../../../store/state/tokenBalances.cjs');
102
+ require('../../../../store/state/multichainBalances.cjs');
103
+ require('../../../../shared/utils/functions/getInitialUrl/getInitialUrl.cjs');
104
+ var useInternalDynamicContext = require('../../../../context/DynamicContext/useDynamicContext/useInternalDynamicContext/useInternalDynamicContext.cjs');
105
+
106
+ const useUnlinkUserEmail = () => {
107
+ const { environmentId } = useInternalDynamicContext.useInternalDynamicContext();
108
+ const unlinkUserEmail = React.useCallback((_a) => _tslib.__awaiter(void 0, [_a], void 0, function* ({ verifiedCredentialId }) {
109
+ var _b;
110
+ const user$1 = (_b = client.getDynamicClient()) === null || _b === void 0 ? void 0 : _b.user;
111
+ const primaryWalletId$1 = primaryWalletId.getPrimaryWalletId();
112
+ if (!primaryWalletId$1) {
113
+ throw new utils.DynamicError('Primary wallet not found');
114
+ }
115
+ const verifiedCredential = user$1 === null || user$1 === void 0 ? void 0 : user$1.verifiedCredentials.find((credential) => credential.id === verifiedCredentialId);
116
+ if (!verifiedCredential) {
117
+ throw new utils.DynamicError('Verified credential not found');
118
+ }
119
+ if (verifiedCredential.format !== sdkApiCore.JwtVerifiedCredentialFormatEnum.Email) {
120
+ throw new utils.DynamicError('Verified credential is not an email');
121
+ }
122
+ return user.unlinkEmail({
123
+ environmentId,
124
+ primaryWalletId: primaryWalletId$1,
125
+ verifiedCredentialId,
126
+ });
127
+ }), [environmentId]);
128
+ return unlinkUserEmail;
129
+ };
130
+
131
+ exports.useUnlinkUserEmail = useUnlinkUserEmail;
@@ -0,0 +1,6 @@
1
+ import { UserProfile } from '@dynamic-labs/types';
2
+ export type UnlinkUserEmailArgs = {
3
+ verifiedCredentialId: string;
4
+ };
5
+ export type UnlinkUserEmail = (args: UnlinkUserEmailArgs) => Promise<UserProfile | undefined>;
6
+ export declare const useUnlinkUserEmail: () => UnlinkUserEmail;