@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.
- package/CHANGELOG.md +23 -0
- package/package.cjs +3 -3
- package/package.js +3 -3
- package/package.json +14 -14
- package/src/lib/context/DynamicContext/DynamicContext.cjs +13 -12
- package/src/lib/context/DynamicContext/DynamicContext.js +13 -12
- package/src/lib/context/DynamicContext/types/SettingsOverrides.d.ts +10 -0
- package/src/lib/data/api/constants.cjs +12 -0
- package/src/lib/data/api/constants.d.ts +3 -0
- package/src/lib/data/api/constants.js +6 -0
- package/src/lib/data/api/embeddedWallets/embeddedWallets.cjs +12 -1
- package/src/lib/data/api/embeddedWallets/embeddedWallets.js +12 -1
- package/src/lib/data/api/user/user.cjs +19 -0
- package/src/lib/data/api/user/user.d.ts +5 -0
- package/src/lib/data/api/user/user.js +19 -1
- package/src/lib/shared/utils/functions/chain/getChainIcon.cjs +1 -0
- package/src/lib/shared/utils/functions/chain/getChainIcon.js +2 -1
- package/src/lib/utils/constants/values.cjs +2 -0
- package/src/lib/utils/constants/values.js +2 -0
- package/src/lib/utils/functions/clientSessionKeys/getClientSessionKeys.cjs +33 -1
- package/src/lib/utils/functions/clientSessionKeys/getClientSessionKeys.d.ts +11 -0
- package/src/lib/utils/functions/clientSessionKeys/getClientSessionKeys.js +32 -2
- package/src/lib/utils/functions/compareChains/compareChains.cjs +1 -0
- package/src/lib/utils/functions/compareChains/compareChains.js +1 -0
- package/src/lib/utils/hooks/useAuthenticatePasskeyMFA/useAuthenticatePasskeyMFA.cjs +1 -1
- package/src/lib/utils/hooks/useAuthenticatePasskeyMFA/useAuthenticatePasskeyMFA.js +1 -1
- package/src/lib/utils/hooks/useGetTransactionHistory/useGetTransactionHistory.d.ts +29 -0
- package/src/lib/utils/hooks/useIsMfaRequiredForAction/useIsMfaRequiredForAction.cjs +1 -4
- package/src/lib/utils/hooks/useIsMfaRequiredForAction/useIsMfaRequiredForAction.js +1 -4
- package/src/lib/utils/hooks/useNetworkConfigurationsFromProjectSettings/useNetworkConfigurationsFromProjectSettings.cjs +7 -2
- package/src/lib/utils/hooks/useNetworkConfigurationsFromProjectSettings/useNetworkConfigurationsFromProjectSettings.d.ts +2 -1
- package/src/lib/utils/hooks/useNetworkConfigurationsFromProjectSettings/useNetworkConfigurationsFromProjectSettings.js +7 -2
- package/src/lib/utils/hooks/useRegisterPasskey/useRegisterPasskey.cjs +8 -1
- package/src/lib/utils/hooks/useRegisterPasskey/useRegisterPasskey.js +8 -1
- package/src/lib/utils/hooks/useSocialAccounts/useSocialAccounts.cjs +2 -1
- package/src/lib/utils/hooks/useSocialAccounts/useSocialAccounts.d.ts +4 -1
- package/src/lib/utils/hooks/useSocialAccounts/useSocialAccounts.js +2 -1
- package/src/lib/utils/hooks/useSocialAuth/useSocialAuth.cjs +1 -1
- package/src/lib/utils/hooks/useSocialAuth/useSocialAuth.d.ts +1 -1
- package/src/lib/utils/hooks/useSocialAuth/useSocialAuth.js +1 -1
- package/src/lib/utils/hooks/useUserUpdateRequest/unlinkUserEmail/unlinkUserEmail.cjs +131 -0
- package/src/lib/utils/hooks/useUserUpdateRequest/unlinkUserEmail/unlinkUserEmail.d.ts +6 -0
- package/src/lib/utils/hooks/useUserUpdateRequest/unlinkUserEmail/unlinkUserEmail.js +127 -0
- package/src/lib/utils/hooks/useUserUpdateRequest/useUserUpdateRequest.cjs +3 -1
- package/src/lib/utils/hooks/useUserUpdateRequest/useUserUpdateRequest.d.ts +2 -0
- package/src/lib/utils/hooks/useUserUpdateRequest/useUserUpdateRequest.js +3 -1
- package/src/lib/views/SendBalanceView/SendBalanceView.cjs +14 -2
- package/src/lib/views/SendBalanceView/SendBalanceView.js +15 -3
- package/src/lib/views/TransactionConfirmationView/TransactionConfirmationView.cjs +8 -1
- 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 = (
|
|
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 };
|
|
@@ -36,6 +36,6 @@ const useAuthenticatePasskeyMFA = () => React.useCallback((props) => _tslib.__aw
|
|
|
36
36
|
mfaToken: result.mfaToken,
|
|
37
37
|
});
|
|
38
38
|
return result.mfaToken;
|
|
39
|
-
}), [
|
|
39
|
+
}), []);
|
|
40
40
|
|
|
41
41
|
exports.useAuthenticatePasskeyMFA = 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* () {
|
|
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* () {
|
|
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
|
-
|
|
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;
|