@dynamic-labs/sdk-react-core 3.0.0-alpha.5 → 3.0.0-alpha.6
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 +17 -0
- package/package.cjs +2 -2
- package/package.js +2 -2
- package/package.json +11 -11
- package/src/lib/components/NetworkPicker/components/EvmNetworkControl/EvmNetworkControl.cjs +2 -1
- package/src/lib/components/NetworkPicker/components/EvmNetworkControl/EvmNetworkControl.js +2 -1
- package/src/lib/components/QRCode/QRCode.d.ts +15 -0
- package/src/lib/context/DynamicContext/DynamicContext.cjs +1 -1
- package/src/lib/context/DynamicContext/DynamicContext.js +1 -1
- package/src/lib/context/DynamicContext/hooks/useTieCallbacksToEvents/useTieCallbacksToEvents.cjs +2 -2
- package/src/lib/context/DynamicContext/hooks/useTieCallbacksToEvents/useTieCallbacksToEvents.js +2 -2
- package/src/lib/context/DynamicContext/useCustomerCallbacks/useCustomerCallbacks.cjs +3 -67
- package/src/lib/context/DynamicContext/useCustomerCallbacks/useCustomerCallbacks.js +3 -67
- package/src/lib/data/api/externalAuth/externalAuth.d.ts +5 -0
- package/src/lib/data/api/externalAuth/index.d.ts +1 -0
- package/src/lib/data/api/index.d.ts +1 -0
- package/src/lib/events/auth.d.ts +1 -0
- package/src/lib/events/embeddedWallet.d.ts +1 -1
- package/src/lib/locale/en/translation.cjs +4 -4
- package/src/lib/locale/en/translation.d.ts +2 -2
- package/src/lib/locale/en/translation.js +4 -4
- package/src/lib/shared/types/dynamicEventsCallbacks.d.ts +1 -3
- package/src/lib/styles/index.shadow.cjs +1 -1
- package/src/lib/styles/index.shadow.js +1 -1
- package/src/lib/utils/functions/walletListBuilder/walletListBuilder.cjs +2 -1
- package/src/lib/utils/functions/walletListBuilder/walletListBuilder.js +2 -1
- package/src/lib/utils/hooks/index.d.ts +1 -0
- package/src/lib/utils/hooks/useCreateDynamicEmbeddedWalletMutation/useCreateDynamicEmbeddedWalletMutation.cjs +1 -2
- package/src/lib/utils/hooks/useCreateDynamicEmbeddedWalletMutation/useCreateDynamicEmbeddedWalletMutation.js +1 -2
- package/src/lib/utils/hooks/useEmbeddedWallet/useEmbeddedWallet.cjs +6 -4
- package/src/lib/utils/hooks/useEmbeddedWallet/useEmbeddedWallet.js +6 -4
- package/src/lib/utils/hooks/useEmbeddedWallet/useMPCEmbeddedWallet/useCoinbaseMPC/useCoinbaseMPC.cjs +1 -2
- package/src/lib/utils/hooks/useEmbeddedWallet/useMPCEmbeddedWallet/useCoinbaseMPC/useCoinbaseMPC.js +1 -2
- package/src/lib/utils/hooks/useEmbeddedWallet/useSecureEnclaveEmbeddedWallet/useTurnkey/useTurnkey.cjs +1 -2
- package/src/lib/utils/hooks/useEmbeddedWallet/useSecureEnclaveEmbeddedWallet/useTurnkey/useTurnkey.js +1 -2
- package/src/lib/utils/hooks/useExternalAuth/index.d.ts +1 -0
- package/src/lib/utils/hooks/useExternalAuth/useExternalAuth.d.ts +9 -0
- package/src/lib/utils/hooks/useHandleUnlinkWallet/useHandleUnlinkWallet.cjs +1 -6
- package/src/lib/utils/hooks/useHandleUnlinkWallet/useHandleUnlinkWallet.js +1 -6
- package/src/lib/utils/hooks/useSwitchWallet/useSwitchWallet.cjs +1 -1
- package/src/lib/utils/hooks/useSwitchWallet/useSwitchWallet.js +1 -1
- package/src/lib/utils/hooks/useUserAuth/useUserAuth.cjs +4 -1
- package/src/lib/utils/hooks/useUserAuth/useUserAuth.js +4 -1
- package/src/lib/utils/hooks/useWalletConnectors/utils/findWallet/findWallet.cjs +1 -1
- package/src/lib/utils/hooks/useWalletConnectors/utils/findWallet/findWallet.js +1 -1
- package/src/lib/views/EmailVerification/EmailVerification.cjs +8 -5
- package/src/lib/views/EmailVerification/EmailVerification.js +8 -5
- package/src/lib/widgets/DynamicWidget/components/Wallet/Wallet.cjs +2 -2
- package/src/lib/widgets/DynamicWidget/components/Wallet/Wallet.js +2 -2
|
@@ -82,7 +82,8 @@ const walletListBuilder = ({ authMode, userWallets, multiWallet, numberOfWallets
|
|
|
82
82
|
if (walletConnectorCore.isEmbeddedConnector(wallet.walletConnector)) {
|
|
83
83
|
return;
|
|
84
84
|
}
|
|
85
|
-
else if (wallet.key === 'unknown'
|
|
85
|
+
else if (wallet.key === 'unknown' ||
|
|
86
|
+
!wallet.walletConnector.isAvailable) {
|
|
86
87
|
return;
|
|
87
88
|
}
|
|
88
89
|
else if (isRecommendedWallet) {
|
|
@@ -78,7 +78,8 @@ const walletListBuilder = ({ authMode, userWallets, multiWallet, numberOfWallets
|
|
|
78
78
|
if (isEmbeddedConnector(wallet.walletConnector)) {
|
|
79
79
|
return;
|
|
80
80
|
}
|
|
81
|
-
else if (wallet.key === 'unknown'
|
|
81
|
+
else if (wallet.key === 'unknown' ||
|
|
82
|
+
!wallet.walletConnector.isAvailable) {
|
|
82
83
|
return;
|
|
83
84
|
}
|
|
84
85
|
else if (isRecommendedWallet) {
|
|
@@ -58,3 +58,4 @@ export { useUserAuth } from './useUserAuth';
|
|
|
58
58
|
export { useSwitchWallet } from './useSwitchWallet';
|
|
59
59
|
export { useSyncEmbeddedWalletFlow } from './useSyncEmbeddedWalletFlow';
|
|
60
60
|
export { useSyncOnboardingFlow } from './useSyncOnboardingFlow';
|
|
61
|
+
export { useExternalAuth } from './useExternalAuth';
|
|
@@ -24,7 +24,6 @@ require('../../../context/CaptchaContext/CaptchaContext.cjs');
|
|
|
24
24
|
require('../../../context/ErrorContext/ErrorContext.cjs');
|
|
25
25
|
var errors = require('../../constants/errors.cjs');
|
|
26
26
|
require('@dynamic-labs/multi-wallet');
|
|
27
|
-
var getAuthToken = require('../../functions/getAuthToken/getAuthToken.cjs');
|
|
28
27
|
require('react-international-phone');
|
|
29
28
|
require('../../../config/ApiEndpoint.cjs');
|
|
30
29
|
require('@dynamic-labs/store');
|
|
@@ -133,7 +132,7 @@ const useCreateDynamicEmbeddedWalletMutation = () => {
|
|
|
133
132
|
});
|
|
134
133
|
setPrimaryWalletId(smartWallet$1.id);
|
|
135
134
|
}
|
|
136
|
-
dynamicEvents.dynamicEvents.emit('embeddedWalletCreated', passkeyWallet, turnkeyVerifiedCredentials,
|
|
135
|
+
dynamicEvents.dynamicEvents.emit('embeddedWalletCreated', passkeyWallet, turnkeyVerifiedCredentials, updatedUser);
|
|
137
136
|
setShowAuthFlow(false, { performMultiWalletChecks: false });
|
|
138
137
|
}
|
|
139
138
|
catch (err) {
|
|
@@ -20,7 +20,6 @@ import '../../../context/CaptchaContext/CaptchaContext.js';
|
|
|
20
20
|
import '../../../context/ErrorContext/ErrorContext.js';
|
|
21
21
|
import { USER_NOT_LOGGED_IN } from '../../constants/errors.js';
|
|
22
22
|
import '@dynamic-labs/multi-wallet';
|
|
23
|
-
import { getAuthToken } from '../../functions/getAuthToken/getAuthToken.js';
|
|
24
23
|
import 'react-international-phone';
|
|
25
24
|
import '../../../config/ApiEndpoint.js';
|
|
26
25
|
import '@dynamic-labs/store';
|
|
@@ -129,7 +128,7 @@ const useCreateDynamicEmbeddedWalletMutation = () => {
|
|
|
129
128
|
});
|
|
130
129
|
setPrimaryWalletId(smartWallet.id);
|
|
131
130
|
}
|
|
132
|
-
dynamicEvents.emit('embeddedWalletCreated', passkeyWallet, turnkeyVerifiedCredentials,
|
|
131
|
+
dynamicEvents.emit('embeddedWalletCreated', passkeyWallet, turnkeyVerifiedCredentials, updatedUser);
|
|
133
132
|
setShowAuthFlow(false, { performMultiWalletChecks: false });
|
|
134
133
|
}
|
|
135
134
|
catch (err) {
|
|
@@ -14,9 +14,10 @@ require('@dynamic-labs/wallet-connector-core');
|
|
|
14
14
|
require('react/jsx-runtime');
|
|
15
15
|
require('../../../context/ViewContext/ViewContext.cjs');
|
|
16
16
|
require('@dynamic-labs/wallet-book');
|
|
17
|
+
var localStorage$1 = require('../../constants/localStorage.cjs');
|
|
17
18
|
require('../../constants/colors.cjs');
|
|
18
19
|
var values = require('../../constants/values.cjs');
|
|
19
|
-
require('../../../shared/utils/classes/storage/localStorage.cjs');
|
|
20
|
+
var localStorage = require('../../../shared/utils/classes/storage/localStorage.cjs');
|
|
20
21
|
require('../../../shared/utils/classes/storage/sessionStorage.cjs');
|
|
21
22
|
require('../../../shared/consts/index.cjs');
|
|
22
23
|
require('../../../events/dynamicEvents.cjs');
|
|
@@ -102,7 +103,7 @@ var useInternalDynamicContext = require('../../../context/DynamicContext/useDyna
|
|
|
102
103
|
* }
|
|
103
104
|
*/
|
|
104
105
|
const useEmbeddedWallet = () => {
|
|
105
|
-
const { user, projectSettings,
|
|
106
|
+
const { user, projectSettings, setPrimaryWalletId } = useInternalDynamicContext.useInternalDynamicContext();
|
|
106
107
|
const { isTurnkeyWallet } = useIsTurnkeyWallet.useIsTurnkeyWallet();
|
|
107
108
|
const { createEmbeddedWallet: createMPCWallet, canCreateMPCWallet, createPassword, revealEmbeddedWalletKey: reveaCoinbaseMPCEmbeddedWalletKey, } = useMPCEmbeddedWallet.useMPCEmbeddedWallet();
|
|
108
109
|
const { createEmbeddedWallet: createTurnkeyEmbeddedWallet, createOrRestoreSession, createPasskey, revealEmbeddedWalletKey: revealTurnkeyEmbeddedWalletKey, getPasskeys, isSessionActive, sendOneTimeCode, } = useSecureEnclaveEmbeddedWallet.useSecureEnclaveEmbeddedWallet();
|
|
@@ -143,7 +144,8 @@ const useEmbeddedWallet = () => {
|
|
|
143
144
|
var _a, _b;
|
|
144
145
|
const hasEmbeddedWalletProviderEnabled = isTurnkeyEnabled.isTurnkeyEnabled(projectSettings) ||
|
|
145
146
|
isCoinbaseWaasEnabled.isCoinbaseWaasEnabled(projectSettings);
|
|
146
|
-
|
|
147
|
+
const hasPrimaryWallet = localStorage.LocalStorage.getFromLS(localStorage$1.PRIMARY_WALLET_ID);
|
|
148
|
+
if (!hasEmbeddedWalletProviderEnabled || hasPrimaryWallet) {
|
|
147
149
|
return false;
|
|
148
150
|
}
|
|
149
151
|
// Turnkey specific rules
|
|
@@ -166,7 +168,7 @@ const useEmbeddedWallet = () => {
|
|
|
166
168
|
return false;
|
|
167
169
|
}
|
|
168
170
|
return true;
|
|
169
|
-
}, [
|
|
171
|
+
}, [projectSettings, setPrimaryWalletId]);
|
|
170
172
|
return {
|
|
171
173
|
createEmbeddedWallet,
|
|
172
174
|
createOrRestoreSession,
|
|
@@ -10,9 +10,10 @@ import '@dynamic-labs/wallet-connector-core';
|
|
|
10
10
|
import 'react/jsx-runtime';
|
|
11
11
|
import '../../../context/ViewContext/ViewContext.js';
|
|
12
12
|
import '@dynamic-labs/wallet-book';
|
|
13
|
+
import { PRIMARY_WALLET_ID } from '../../constants/localStorage.js';
|
|
13
14
|
import '../../constants/colors.js';
|
|
14
15
|
import { ChainEnumToVerifiedCredentialName } from '../../constants/values.js';
|
|
15
|
-
import '../../../shared/utils/classes/storage/localStorage.js';
|
|
16
|
+
import { LocalStorage } from '../../../shared/utils/classes/storage/localStorage.js';
|
|
16
17
|
import '../../../shared/utils/classes/storage/sessionStorage.js';
|
|
17
18
|
import '../../../shared/consts/index.js';
|
|
18
19
|
import '../../../events/dynamicEvents.js';
|
|
@@ -98,7 +99,7 @@ import { useInternalDynamicContext } from '../../../context/DynamicContext/useDy
|
|
|
98
99
|
* }
|
|
99
100
|
*/
|
|
100
101
|
const useEmbeddedWallet = () => {
|
|
101
|
-
const { user, projectSettings,
|
|
102
|
+
const { user, projectSettings, setPrimaryWalletId } = useInternalDynamicContext();
|
|
102
103
|
const { isTurnkeyWallet } = useIsTurnkeyWallet();
|
|
103
104
|
const { createEmbeddedWallet: createMPCWallet, canCreateMPCWallet, createPassword, revealEmbeddedWalletKey: reveaCoinbaseMPCEmbeddedWalletKey, } = useMPCEmbeddedWallet();
|
|
104
105
|
const { createEmbeddedWallet: createTurnkeyEmbeddedWallet, createOrRestoreSession, createPasskey, revealEmbeddedWalletKey: revealTurnkeyEmbeddedWalletKey, getPasskeys, isSessionActive, sendOneTimeCode, } = useSecureEnclaveEmbeddedWallet();
|
|
@@ -139,7 +140,8 @@ const useEmbeddedWallet = () => {
|
|
|
139
140
|
var _a, _b;
|
|
140
141
|
const hasEmbeddedWalletProviderEnabled = isTurnkeyEnabled(projectSettings) ||
|
|
141
142
|
isCoinbaseWaasEnabled(projectSettings);
|
|
142
|
-
|
|
143
|
+
const hasPrimaryWallet = LocalStorage.getFromLS(PRIMARY_WALLET_ID);
|
|
144
|
+
if (!hasEmbeddedWalletProviderEnabled || hasPrimaryWallet) {
|
|
143
145
|
return false;
|
|
144
146
|
}
|
|
145
147
|
// Turnkey specific rules
|
|
@@ -162,7 +164,7 @@ const useEmbeddedWallet = () => {
|
|
|
162
164
|
return false;
|
|
163
165
|
}
|
|
164
166
|
return true;
|
|
165
|
-
}, [
|
|
167
|
+
}, [projectSettings, setPrimaryWalletId]);
|
|
166
168
|
return {
|
|
167
169
|
createEmbeddedWallet,
|
|
168
170
|
createOrRestoreSession,
|
package/src/lib/utils/hooks/useEmbeddedWallet/useMPCEmbeddedWallet/useCoinbaseMPC/useCoinbaseMPC.cjs
CHANGED
|
@@ -13,7 +13,6 @@ var findEmbeddedWalletFromVerifiedCredentials = require('../../../../functions/f
|
|
|
13
13
|
require('../../../../constants/values.cjs');
|
|
14
14
|
var errors = require('../../../../constants/errors.cjs');
|
|
15
15
|
require('@dynamic-labs/multi-wallet');
|
|
16
|
-
var getAuthToken = require('../../../../functions/getAuthToken/getAuthToken.cjs');
|
|
17
16
|
var logger = require('../../../../../shared/logger.cjs');
|
|
18
17
|
require('@dynamic-labs/iconic');
|
|
19
18
|
require('react/jsx-runtime');
|
|
@@ -171,7 +170,7 @@ const useCoinbaseMPC = () => {
|
|
|
171
170
|
id: newSelectedCredentialWallet.id,
|
|
172
171
|
key: (_c = newSelectedCredentialWallet.walletName) !== null && _c !== void 0 ? _c : connector.key,
|
|
173
172
|
};
|
|
174
|
-
dynamicEvents.dynamicEvents.emit('embeddedWalletCreated', coinbaseMPCWallet, newSelectedCredentialWallet,
|
|
173
|
+
dynamicEvents.dynamicEvents.emit('embeddedWalletCreated', coinbaseMPCWallet, newSelectedCredentialWallet, updatedUser);
|
|
175
174
|
return coinbaseMPCWallet;
|
|
176
175
|
}
|
|
177
176
|
catch (error) {
|
package/src/lib/utils/hooks/useEmbeddedWallet/useMPCEmbeddedWallet/useCoinbaseMPC/useCoinbaseMPC.js
CHANGED
|
@@ -9,7 +9,6 @@ import { findEmbeddedWalletFromVerifiedCredentials } from '../../../../functions
|
|
|
9
9
|
import '../../../../constants/values.js';
|
|
10
10
|
import { USER_NOT_LOGGED_IN } from '../../../../constants/errors.js';
|
|
11
11
|
import '@dynamic-labs/multi-wallet';
|
|
12
|
-
import { getAuthToken } from '../../../../functions/getAuthToken/getAuthToken.js';
|
|
13
12
|
import { logger } from '../../../../../shared/logger.js';
|
|
14
13
|
import '@dynamic-labs/iconic';
|
|
15
14
|
import 'react/jsx-runtime';
|
|
@@ -167,7 +166,7 @@ const useCoinbaseMPC = () => {
|
|
|
167
166
|
id: newSelectedCredentialWallet.id,
|
|
168
167
|
key: (_c = newSelectedCredentialWallet.walletName) !== null && _c !== void 0 ? _c : connector.key,
|
|
169
168
|
};
|
|
170
|
-
dynamicEvents.emit('embeddedWalletCreated', coinbaseMPCWallet, newSelectedCredentialWallet,
|
|
169
|
+
dynamicEvents.emit('embeddedWalletCreated', coinbaseMPCWallet, newSelectedCredentialWallet, updatedUser);
|
|
171
170
|
return coinbaseMPCWallet;
|
|
172
171
|
}
|
|
173
172
|
catch (error) {
|
|
@@ -25,7 +25,6 @@ require('../../../../../context/ErrorContext/ErrorContext.cjs');
|
|
|
25
25
|
var findEmbeddedWalletFromVerifiedCredentials = require('../../../../functions/findEmbeddedWalletFromVerifiedCredentials/findEmbeddedWalletFromVerifiedCredentials.cjs');
|
|
26
26
|
var findTurnkeyWallet = require('../../../../functions/findTurnkeyWallet/findTurnkeyWallet.cjs');
|
|
27
27
|
require('@dynamic-labs/multi-wallet');
|
|
28
|
-
var getAuthToken = require('../../../../functions/getAuthToken/getAuthToken.cjs');
|
|
29
28
|
require('react-international-phone');
|
|
30
29
|
require('../../../../../config/ApiEndpoint.cjs');
|
|
31
30
|
require('@dynamic-labs/store');
|
|
@@ -213,7 +212,7 @@ const useTurnkey = () => {
|
|
|
213
212
|
key: (_j = embeddedWalletVerifiedCredential.walletName) !== null && _j !== void 0 ? _j : walletConnector.key,
|
|
214
213
|
};
|
|
215
214
|
setPrimaryWalletId(embeddedWalletVerifiedCredential.id);
|
|
216
|
-
dynamicEvents.dynamicEvents.emit('embeddedWalletCreated', wallet, embeddedWalletVerifiedCredential,
|
|
215
|
+
dynamicEvents.dynamicEvents.emit('embeddedWalletCreated', wallet, embeddedWalletVerifiedCredential, user);
|
|
217
216
|
}
|
|
218
217
|
}
|
|
219
218
|
setShowAuthFlow(false, { performMultiWalletChecks: false });
|
|
@@ -21,7 +21,6 @@ import '../../../../../context/ErrorContext/ErrorContext.js';
|
|
|
21
21
|
import { findEmbeddedWalletFromVerifiedCredentials } from '../../../../functions/findEmbeddedWalletFromVerifiedCredentials/findEmbeddedWalletFromVerifiedCredentials.js';
|
|
22
22
|
import { findTurnkeyWalletByChain } from '../../../../functions/findTurnkeyWallet/findTurnkeyWallet.js';
|
|
23
23
|
import '@dynamic-labs/multi-wallet';
|
|
24
|
-
import { getAuthToken } from '../../../../functions/getAuthToken/getAuthToken.js';
|
|
25
24
|
import 'react-international-phone';
|
|
26
25
|
import '../../../../../config/ApiEndpoint.js';
|
|
27
26
|
import '@dynamic-labs/store';
|
|
@@ -209,7 +208,7 @@ const useTurnkey = () => {
|
|
|
209
208
|
key: (_j = embeddedWalletVerifiedCredential.walletName) !== null && _j !== void 0 ? _j : walletConnector.key,
|
|
210
209
|
};
|
|
211
210
|
setPrimaryWalletId(embeddedWalletVerifiedCredential.id);
|
|
212
|
-
dynamicEvents.emit('embeddedWalletCreated', wallet, embeddedWalletVerifiedCredential,
|
|
211
|
+
dynamicEvents.emit('embeddedWalletCreated', wallet, embeddedWalletVerifiedCredential, user);
|
|
213
212
|
}
|
|
214
213
|
}
|
|
215
214
|
setShowAuthFlow(false, { performMultiWalletChecks: false });
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './useExternalAuth';
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { UserProfile } from '../../../..';
|
|
2
|
+
type Props = {
|
|
3
|
+
externalUserId: string;
|
|
4
|
+
externalJwt?: string;
|
|
5
|
+
};
|
|
6
|
+
export declare const useExternalAuth: () => {
|
|
7
|
+
signInWithExternalJwt: ({ externalUserId, externalJwt, }: Props) => Promise<UserProfile | undefined>;
|
|
8
|
+
};
|
|
9
|
+
export {};
|
|
@@ -5,11 +5,11 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
5
5
|
|
|
6
6
|
var _tslib = require('../../../../../_virtual/_tslib.cjs');
|
|
7
7
|
var React = require('react');
|
|
8
|
-
var walletConnectorCore = require('@dynamic-labs/wallet-connector-core');
|
|
9
8
|
var UserWalletsContext = require('../../../context/UserWalletsContext/UserWalletsContext.cjs');
|
|
10
9
|
require('@dynamic-labs/sdk-api-core');
|
|
11
10
|
require('../../../shared/logger.cjs');
|
|
12
11
|
require('@dynamic-labs/iconic');
|
|
12
|
+
require('@dynamic-labs/wallet-connector-core');
|
|
13
13
|
require('react/jsx-runtime');
|
|
14
14
|
require('../../../context/ViewContext/ViewContext.cjs');
|
|
15
15
|
require('@dynamic-labs/wallet-book');
|
|
@@ -103,11 +103,6 @@ const useHandleUnlinkWallet = ({ verifiedCredentials, environmentId, primaryWall
|
|
|
103
103
|
const numberOfLinkedWallets = verifiedCredentials.filter((account) => account.walletName === ((wallet === null || wallet === void 0 ? void 0 : wallet.connector.key) || '')).length;
|
|
104
104
|
// If there's only 1, it's the one being removed and we can kill the session
|
|
105
105
|
if (numberOfLinkedWallets === 1) {
|
|
106
|
-
if (wallet && walletConnectorCore.isBitcoinConnector(wallet.connector)) {
|
|
107
|
-
// to avoid the infinite wallet popup issue experienced with the ME wallet
|
|
108
|
-
// we only want to clear the cached connected accounts when we unlink, but not on logout
|
|
109
|
-
yield (wallet === null || wallet === void 0 ? void 0 : wallet.connector.clearConnectedAccounts());
|
|
110
|
-
}
|
|
111
106
|
yield (wallet === null || wallet === void 0 ? void 0 : wallet.connector.endSession());
|
|
112
107
|
}
|
|
113
108
|
removedWalletsIds.current.push(walletId);
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
'use client'
|
|
2
2
|
import { __awaiter } from '../../../../../_virtual/_tslib.js';
|
|
3
3
|
import { useCallback } from 'react';
|
|
4
|
-
import { isBitcoinConnector } from '@dynamic-labs/wallet-connector-core';
|
|
5
4
|
import { useInternalUserWallets } from '../../../context/UserWalletsContext/UserWalletsContext.js';
|
|
6
5
|
import '@dynamic-labs/sdk-api-core';
|
|
7
6
|
import '../../../shared/logger.js';
|
|
8
7
|
import '@dynamic-labs/iconic';
|
|
8
|
+
import '@dynamic-labs/wallet-connector-core';
|
|
9
9
|
import 'react/jsx-runtime';
|
|
10
10
|
import '../../../context/ViewContext/ViewContext.js';
|
|
11
11
|
import '@dynamic-labs/wallet-book';
|
|
@@ -99,11 +99,6 @@ const useHandleUnlinkWallet = ({ verifiedCredentials, environmentId, primaryWall
|
|
|
99
99
|
const numberOfLinkedWallets = verifiedCredentials.filter((account) => account.walletName === ((wallet === null || wallet === void 0 ? void 0 : wallet.connector.key) || '')).length;
|
|
100
100
|
// If there's only 1, it's the one being removed and we can kill the session
|
|
101
101
|
if (numberOfLinkedWallets === 1) {
|
|
102
|
-
if (wallet && isBitcoinConnector(wallet.connector)) {
|
|
103
|
-
// to avoid the infinite wallet popup issue experienced with the ME wallet
|
|
104
|
-
// we only want to clear the cached connected accounts when we unlink, but not on logout
|
|
105
|
-
yield (wallet === null || wallet === void 0 ? void 0 : wallet.connector.clearConnectedAccounts());
|
|
106
|
-
}
|
|
107
102
|
yield (wallet === null || wallet === void 0 ? void 0 : wallet.connector.endSession());
|
|
108
103
|
}
|
|
109
104
|
removedWalletsIds.current.push(walletId);
|
|
@@ -112,7 +112,7 @@ const useSwitchWallet = () => {
|
|
|
112
112
|
throw new Error(`Wallet with id ${walletId} not found`);
|
|
113
113
|
}
|
|
114
114
|
if (((_a = wallet.connector) === null || _a === void 0 ? void 0 : _a.key) === 'unknown') {
|
|
115
|
-
throw new Error("Cannot
|
|
115
|
+
throw new Error("Cannot make this wallet active, since this wallet doesn't have a compatible connector on this device.");
|
|
116
116
|
}
|
|
117
117
|
const { connector } = wallet;
|
|
118
118
|
const email = (_b = user === null || user === void 0 ? void 0 : user.verifiedCredentials.find((verifiedCredential) => verifiedCredential.format === 'email')) === null || _b === void 0 ? void 0 : _b.email;
|
|
@@ -108,7 +108,7 @@ const useSwitchWallet = () => {
|
|
|
108
108
|
throw new Error(`Wallet with id ${walletId} not found`);
|
|
109
109
|
}
|
|
110
110
|
if (((_a = wallet.connector) === null || _a === void 0 ? void 0 : _a.key) === 'unknown') {
|
|
111
|
-
throw new Error("Cannot
|
|
111
|
+
throw new Error("Cannot make this wallet active, since this wallet doesn't have a compatible connector on this device.");
|
|
112
112
|
}
|
|
113
113
|
const { connector } = wallet;
|
|
114
114
|
const email = (_b = user === null || user === void 0 ? void 0 : user.verifiedCredentials.find((verifiedCredential) => verifiedCredential.format === 'email')) === null || _b === void 0 ? void 0 : _b.email;
|
|
@@ -83,7 +83,7 @@ var useInternalDynamicContext = require('../../../context/DynamicContext/useDyna
|
|
|
83
83
|
|
|
84
84
|
const sleepToShowSuccessMessage = () => utils.sleep(1500);
|
|
85
85
|
const useUserAuth = ({ authMethod, }) => {
|
|
86
|
-
const { handleLogOut, setShowAuthFlow, setCallback, setMultiWalletWidgetState, environmentId, } = useInternalDynamicContext.useInternalDynamicContext();
|
|
86
|
+
const { handleLogOut, setShowAuthFlow, setCallback, setMultiWalletWidgetState, environmentId, walletConnectorOptions, } = useInternalDynamicContext.useInternalDynamicContext();
|
|
87
87
|
const { view, setView, goToInitialView } = ViewContext.useViewContext();
|
|
88
88
|
const { setLoading } = LoadingContext.useLoadingContext();
|
|
89
89
|
const { setErrorMessage, setError } = ErrorContext.useErrorContext();
|
|
@@ -110,6 +110,9 @@ const useUserAuth = ({ authMethod, }) => {
|
|
|
110
110
|
verifiedUser = verifyResponse;
|
|
111
111
|
}
|
|
112
112
|
onVerifySuccess === null || onVerifySuccess === void 0 ? void 0 : onVerifySuccess(verifiedUser);
|
|
113
|
+
walletConnectorOptions.forEach((walletOption) => {
|
|
114
|
+
walletOption.walletConnector.setVerifiedCredentials(verifiedUser.verifiedCredentials);
|
|
115
|
+
});
|
|
113
116
|
if ((_b = verifiedUser.scope) === null || _b === void 0 ? void 0 : _b.includes('requiresAdditionalAuth')) {
|
|
114
117
|
const devices = yield mfa.getUserMfaDevices({ environmentId });
|
|
115
118
|
if (devices.length === 0) {
|
|
@@ -79,7 +79,7 @@ import { useInternalDynamicContext } from '../../../context/DynamicContext/useDy
|
|
|
79
79
|
|
|
80
80
|
const sleepToShowSuccessMessage = () => sleep(1500);
|
|
81
81
|
const useUserAuth = ({ authMethod, }) => {
|
|
82
|
-
const { handleLogOut, setShowAuthFlow, setCallback, setMultiWalletWidgetState, environmentId, } = useInternalDynamicContext();
|
|
82
|
+
const { handleLogOut, setShowAuthFlow, setCallback, setMultiWalletWidgetState, environmentId, walletConnectorOptions, } = useInternalDynamicContext();
|
|
83
83
|
const { view, setView, goToInitialView } = useViewContext();
|
|
84
84
|
const { setLoading } = useLoadingContext();
|
|
85
85
|
const { setErrorMessage, setError } = useErrorContext();
|
|
@@ -106,6 +106,9 @@ const useUserAuth = ({ authMethod, }) => {
|
|
|
106
106
|
verifiedUser = verifyResponse;
|
|
107
107
|
}
|
|
108
108
|
onVerifySuccess === null || onVerifySuccess === void 0 ? void 0 : onVerifySuccess(verifiedUser);
|
|
109
|
+
walletConnectorOptions.forEach((walletOption) => {
|
|
110
|
+
walletOption.walletConnector.setVerifiedCredentials(verifiedUser.verifiedCredentials);
|
|
111
|
+
});
|
|
109
112
|
if ((_b = verifiedUser.scope) === null || _b === void 0 ? void 0 : _b.includes('requiresAdditionalAuth')) {
|
|
110
113
|
const devices = yield getUserMfaDevices({ environmentId });
|
|
111
114
|
if (devices.length === 0) {
|
|
@@ -17,7 +17,7 @@ const findWallet = (account, walletOptions) => {
|
|
|
17
17
|
}
|
|
18
18
|
// if we cannot find the correct connector for the wallet, we default to the unknown
|
|
19
19
|
// this way the wallet will appear in user wallets, but will not be able to be interacted with
|
|
20
|
-
return ((_a = walletOptions.find((wallet) => walletKey === wallet.key)) !== null && _a !== void 0 ? _a : walletOptions.find((wallet) => wallet.key === '
|
|
20
|
+
return ((_a = walletOptions.find((wallet) => walletKey === wallet.key)) !== null && _a !== void 0 ? _a : walletOptions.find((wallet) => wallet.key === 'fallbackconnector'));
|
|
21
21
|
};
|
|
22
22
|
|
|
23
23
|
exports.findWallet = findWallet;
|
|
@@ -13,7 +13,7 @@ const findWallet = (account, walletOptions) => {
|
|
|
13
13
|
}
|
|
14
14
|
// if we cannot find the correct connector for the wallet, we default to the unknown
|
|
15
15
|
// this way the wallet will appear in user wallets, but will not be able to be interacted with
|
|
16
|
-
return ((_a = walletOptions.find((wallet) => walletKey === wallet.key)) !== null && _a !== void 0 ? _a : walletOptions.find((wallet) => wallet.key === '
|
|
16
|
+
return ((_a = walletOptions.find((wallet) => walletKey === wallet.key)) !== null && _a !== void 0 ? _a : walletOptions.find((wallet) => wallet.key === 'fallbackconnector'));
|
|
17
17
|
};
|
|
18
18
|
|
|
19
19
|
export { findWallet };
|
|
@@ -102,7 +102,7 @@ require('../../context/IpConfigurationContext/IpConfigurationContext.cjs');
|
|
|
102
102
|
const SECONDS_TO_RETRY = 15;
|
|
103
103
|
const EmailVerification = ({ isEmailRecoveryFlow = false, showRetryButton: _showRetryButton = true, showTransferMessage: _showTransferMessage = false, }) => {
|
|
104
104
|
var _a, _b, _c, _d;
|
|
105
|
-
const { environmentId, handleLogOut, setPrimaryWalletId, setShowAuthFlow, projectSettings, user, unauthenticatedUser, } = useInternalDynamicContext.useInternalDynamicContext();
|
|
105
|
+
const { environmentId, handleLogOut, setPrimaryWalletId, setShowAuthFlow, projectSettings, user, unauthenticatedUser, walletConnectorOptions, } = useInternalDynamicContext.useInternalDynamicContext();
|
|
106
106
|
const { setView, goToInitialView } = ViewContext.useViewContext();
|
|
107
107
|
const { error, setError, setErrorMessage } = ErrorContext.useErrorContext();
|
|
108
108
|
const { loading, setLoading } = LoadingContext.useLoadingContext();
|
|
@@ -177,19 +177,21 @@ const EmailVerification = ({ isEmailRecoveryFlow = false, showRetryButton: _show
|
|
|
177
177
|
if (!embeddedWalletVerifiedCredential) {
|
|
178
178
|
throw new Error('Could not find an embedded wallet');
|
|
179
179
|
}
|
|
180
|
+
const walletOption = walletConnectorOptions === null || walletConnectorOptions === void 0 ? void 0 : walletConnectorOptions.find((option) => option.key === embeddedWalletVerifiedCredential.walletName);
|
|
181
|
+
if (!(walletOption === null || walletOption === void 0 ? void 0 : walletOption.walletConnector)) {
|
|
182
|
+
throw new Error('Could not find connector for embedded wallet');
|
|
183
|
+
}
|
|
180
184
|
const wallet = {
|
|
181
185
|
address: embeddedWalletVerifiedCredential.address,
|
|
182
186
|
authenticated: false,
|
|
183
187
|
chain: embeddedWalletVerifiedCredential.chain,
|
|
184
188
|
connected: true,
|
|
185
|
-
|
|
186
|
-
// @ts-ignore
|
|
187
|
-
connector: undefined,
|
|
189
|
+
connector: walletOption.walletConnector,
|
|
188
190
|
id: embeddedWalletVerifiedCredential.id,
|
|
189
191
|
key: (_k = embeddedWalletVerifiedCredential.walletName) !== null && _k !== void 0 ? _k : '',
|
|
190
192
|
};
|
|
191
193
|
setPrimaryWalletId(embeddedWalletVerifiedCredential.id);
|
|
192
|
-
dynamicEvents.dynamicEvents.emit('embeddedWalletCreated', wallet, embeddedWalletVerifiedCredential,
|
|
194
|
+
dynamicEvents.dynamicEvents.emit('embeddedWalletCreated', wallet, embeddedWalletVerifiedCredential, user);
|
|
193
195
|
}
|
|
194
196
|
if (isUsingPregeneratedWallets || !isAutomaticWalletCreation) {
|
|
195
197
|
setShowAuthFlow(false);
|
|
@@ -210,6 +212,7 @@ const EmailVerification = ({ isEmailRecoveryFlow = false, showRetryButton: _show
|
|
|
210
212
|
setShowAuthFlow,
|
|
211
213
|
setView,
|
|
212
214
|
user,
|
|
215
|
+
walletConnectorOptions,
|
|
213
216
|
]);
|
|
214
217
|
const handleEmailVerification = React.useCallback((verificationToken) => _tslib.__awaiter(void 0, void 0, void 0, function* () {
|
|
215
218
|
setError(undefined);
|
|
@@ -98,7 +98,7 @@ import '../../context/IpConfigurationContext/IpConfigurationContext.js';
|
|
|
98
98
|
const SECONDS_TO_RETRY = 15;
|
|
99
99
|
const EmailVerification = ({ isEmailRecoveryFlow = false, showRetryButton: _showRetryButton = true, showTransferMessage: _showTransferMessage = false, }) => {
|
|
100
100
|
var _a, _b, _c, _d;
|
|
101
|
-
const { environmentId, handleLogOut, setPrimaryWalletId, setShowAuthFlow, projectSettings, user, unauthenticatedUser, } = useInternalDynamicContext();
|
|
101
|
+
const { environmentId, handleLogOut, setPrimaryWalletId, setShowAuthFlow, projectSettings, user, unauthenticatedUser, walletConnectorOptions, } = useInternalDynamicContext();
|
|
102
102
|
const { setView, goToInitialView } = useViewContext();
|
|
103
103
|
const { error, setError, setErrorMessage } = useErrorContext();
|
|
104
104
|
const { loading, setLoading } = useLoadingContext();
|
|
@@ -173,19 +173,21 @@ const EmailVerification = ({ isEmailRecoveryFlow = false, showRetryButton: _show
|
|
|
173
173
|
if (!embeddedWalletVerifiedCredential) {
|
|
174
174
|
throw new Error('Could not find an embedded wallet');
|
|
175
175
|
}
|
|
176
|
+
const walletOption = walletConnectorOptions === null || walletConnectorOptions === void 0 ? void 0 : walletConnectorOptions.find((option) => option.key === embeddedWalletVerifiedCredential.walletName);
|
|
177
|
+
if (!(walletOption === null || walletOption === void 0 ? void 0 : walletOption.walletConnector)) {
|
|
178
|
+
throw new Error('Could not find connector for embedded wallet');
|
|
179
|
+
}
|
|
176
180
|
const wallet = {
|
|
177
181
|
address: embeddedWalletVerifiedCredential.address,
|
|
178
182
|
authenticated: false,
|
|
179
183
|
chain: embeddedWalletVerifiedCredential.chain,
|
|
180
184
|
connected: true,
|
|
181
|
-
|
|
182
|
-
// @ts-ignore
|
|
183
|
-
connector: undefined,
|
|
185
|
+
connector: walletOption.walletConnector,
|
|
184
186
|
id: embeddedWalletVerifiedCredential.id,
|
|
185
187
|
key: (_k = embeddedWalletVerifiedCredential.walletName) !== null && _k !== void 0 ? _k : '',
|
|
186
188
|
};
|
|
187
189
|
setPrimaryWalletId(embeddedWalletVerifiedCredential.id);
|
|
188
|
-
dynamicEvents.emit('embeddedWalletCreated', wallet, embeddedWalletVerifiedCredential,
|
|
190
|
+
dynamicEvents.emit('embeddedWalletCreated', wallet, embeddedWalletVerifiedCredential, user);
|
|
189
191
|
}
|
|
190
192
|
if (isUsingPregeneratedWallets || !isAutomaticWalletCreation) {
|
|
191
193
|
setShowAuthFlow(false);
|
|
@@ -206,6 +208,7 @@ const EmailVerification = ({ isEmailRecoveryFlow = false, showRetryButton: _show
|
|
|
206
208
|
setShowAuthFlow,
|
|
207
209
|
setView,
|
|
208
210
|
user,
|
|
211
|
+
walletConnectorOptions,
|
|
209
212
|
]);
|
|
210
213
|
const handleEmailVerification = useCallback((verificationToken) => __awaiter(void 0, void 0, void 0, function* () {
|
|
211
214
|
setError(undefined);
|
|
@@ -88,7 +88,7 @@ require('../../views/ManagePasskeysWidgetView/PasskeyCard/PasskeyCard.cjs');
|
|
|
88
88
|
var useInternalDynamicContext = require('../../../../context/DynamicContext/useDynamicContext/useInternalDynamicContext.cjs');
|
|
89
89
|
|
|
90
90
|
const Wallet = ({ wallet, ens }) => {
|
|
91
|
-
var _a;
|
|
91
|
+
var _a, _b;
|
|
92
92
|
const { connector, address } = wallet;
|
|
93
93
|
const switchWallet = useSwitchWallet.useSwitchWallet();
|
|
94
94
|
const { setSelectedWalletWithAction, projectSettings, authMode } = useInternalDynamicContext.useInternalDynamicContext();
|
|
@@ -97,7 +97,7 @@ const Wallet = ({ wallet, ens }) => {
|
|
|
97
97
|
{
|
|
98
98
|
Icon: jsxRuntime.jsx(switchHorizontal.ReactComponent, {}),
|
|
99
99
|
callback: () => switchWallet(wallet.id),
|
|
100
|
-
hide: ((_a = wallet.connector) === null || _a === void 0 ? void 0 : _a.key) === 'unknown',
|
|
100
|
+
hide: ((_a = wallet.connector) === null || _a === void 0 ? void 0 : _a.key) === 'unknown' || !((_b = wallet.connector) === null || _b === void 0 ? void 0 : _b.isAvailable),
|
|
101
101
|
text: 'Select wallet',
|
|
102
102
|
},
|
|
103
103
|
];
|
|
@@ -84,7 +84,7 @@ import '../../views/ManagePasskeysWidgetView/PasskeyCard/PasskeyCard.js';
|
|
|
84
84
|
import { useInternalDynamicContext } from '../../../../context/DynamicContext/useDynamicContext/useInternalDynamicContext.js';
|
|
85
85
|
|
|
86
86
|
const Wallet = ({ wallet, ens }) => {
|
|
87
|
-
var _a;
|
|
87
|
+
var _a, _b;
|
|
88
88
|
const { connector, address } = wallet;
|
|
89
89
|
const switchWallet = useSwitchWallet();
|
|
90
90
|
const { setSelectedWalletWithAction, projectSettings, authMode } = useInternalDynamicContext();
|
|
@@ -93,7 +93,7 @@ const Wallet = ({ wallet, ens }) => {
|
|
|
93
93
|
{
|
|
94
94
|
Icon: jsx(SvgSwitchHorizontal, {}),
|
|
95
95
|
callback: () => switchWallet(wallet.id),
|
|
96
|
-
hide: ((_a = wallet.connector) === null || _a === void 0 ? void 0 : _a.key) === 'unknown',
|
|
96
|
+
hide: ((_a = wallet.connector) === null || _a === void 0 ? void 0 : _a.key) === 'unknown' || !((_b = wallet.connector) === null || _b === void 0 ? void 0 : _b.isAvailable),
|
|
97
97
|
text: 'Select wallet',
|
|
98
98
|
},
|
|
99
99
|
];
|