@dynamic-labs/sdk-react-core 4.91.1 → 4.91.3
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 +36 -0
- package/package.cjs +2 -2
- package/package.js +2 -2
- package/package.json +13 -13
- package/src/lib/components/SendBalanceForm/SendBalanceForm.cjs +34 -6
- package/src/lib/components/SendBalanceForm/SendBalanceForm.d.ts +2 -1
- package/src/lib/components/SendBalanceForm/SendBalanceForm.js +35 -7
- package/src/lib/components/SendBalancePageLayout/SendBalancePageLayout.cjs +2 -2
- package/src/lib/components/SendBalancePageLayout/SendBalancePageLayout.js +2 -2
- package/src/lib/components/SendBalancePageLayout/components/TokensBalanceDropdown/TokensBalanceDropdown.cjs +8 -7
- package/src/lib/components/SendBalancePageLayout/components/TokensBalanceDropdown/TokensBalanceDropdown.d.ts +3 -1
- package/src/lib/components/SendBalancePageLayout/components/TokensBalanceDropdown/TokensBalanceDropdown.js +8 -7
- package/src/lib/context/ErrorContext/ErrorContext.cjs +48 -28
- package/src/lib/context/ErrorContext/ErrorContext.js +49 -29
- package/src/lib/context/OnrampContext/OnrampContext.cjs +20 -15
- package/src/lib/context/OnrampContext/OnrampContext.js +20 -15
- package/src/lib/data/api/embeddedWallets/embeddedWallets.cjs +15 -14
- package/src/lib/data/api/embeddedWallets/embeddedWallets.js +3 -2
- package/src/lib/data/api/user/user.cjs +1 -1
- package/src/lib/data/api/user/user.js +2 -2
- package/src/lib/data/api/utils.cjs +6 -1
- package/src/lib/data/api/utils.d.ts +1 -0
- package/src/lib/data/api/utils.js +6 -2
- package/src/lib/data/api/wallets/wallets.cjs +2 -2
- package/src/lib/data/api/wallets/wallets.js +3 -3
- package/src/lib/events/auth.d.ts +3 -2
- package/src/lib/shared/types/dynamicEventsCallbacks.d.ts +2 -1
- package/src/lib/utils/functions/getVerifyArgs/getVerifyArgs.cjs +4 -0
- package/src/lib/utils/functions/getVerifyArgs/getVerifyArgs.js +5 -1
- package/src/lib/utils/hooks/authenticationHooks/useConnectAndSign/useConnectAndSign.cjs +1 -1
- package/src/lib/utils/hooks/authenticationHooks/useConnectAndSign/useConnectAndSign.js +2 -2
- package/src/lib/utils/hooks/useDynamicWaas/useDynamicWaas.cjs +21 -3
- package/src/lib/utils/hooks/useDynamicWaas/useDynamicWaas.d.ts +7 -0
- package/src/lib/utils/hooks/useDynamicWaas/useDynamicWaas.js +21 -3
- package/src/lib/utils/hooks/useEmbeddedReveal/useEmbeddedReveal.cjs +5 -3
- package/src/lib/utils/hooks/useEmbeddedReveal/useEmbeddedReveal.d.ts +1 -1
- package/src/lib/utils/hooks/useEmbeddedReveal/useEmbeddedReveal.js +5 -3
- package/src/lib/utils/hooks/useSocialAccounts/useSocialAccounts.cjs +2 -2
- package/src/lib/utils/hooks/useSocialAccounts/useSocialAccounts.js +2 -2
- package/src/lib/utils/hooks/useSyncEmbeddedWalletFlow/useSyncEmbeddedWalletFlow.cjs +1 -1
- package/src/lib/utils/hooks/useSyncEmbeddedWalletFlow/useSyncEmbeddedWalletFlow.js +1 -1
- package/src/lib/views/EmailVerification/EmailVerification.cjs +4 -4
- package/src/lib/views/EmailVerification/EmailVerification.js +4 -4
- package/src/lib/views/EmailWalletOTPVerificationView/EmailWalletOTPVerificationView.cjs +2 -2
- package/src/lib/views/EmailWalletOTPVerificationView/EmailWalletOTPVerificationView.js +2 -2
- package/src/lib/views/EmbeddedReveal/EmbeddedRevealView/EmbeddedRevealView.cjs +18 -11
- package/src/lib/views/EmbeddedReveal/EmbeddedRevealView/EmbeddedRevealView.d.ts +1 -0
- package/src/lib/views/EmbeddedReveal/EmbeddedRevealView/EmbeddedRevealView.js +18 -11
- package/src/lib/views/LoginView/sections/SocialSignInSection/DynamicSocialSignIn/DynamicSocialSignIn.cjs +2 -2
- package/src/lib/views/LoginView/sections/SocialSignInSection/DynamicSocialSignIn/DynamicSocialSignIn.js +2 -2
- package/src/lib/views/SmsVerification/useSmsVerification/useSmsVerification.cjs +2 -2
- package/src/lib/views/SmsVerification/useSmsVerification/useSmsVerification.js +2 -2
- package/src/lib/widgets/DynamicWidget/components/ActiveMidnightWalletBalance/ActiveMidnightWalletBalance.cjs +33 -9
- package/src/lib/widgets/DynamicWidget/components/ActiveMidnightWalletBalance/ActiveMidnightWalletBalance.js +33 -9
- package/src/lib/widgets/DynamicWidget/views/AccountAndSecuritySettingsView/EmbeddedWalletExportSection/EmbeddedWalletExportSection.cjs +5 -2
- package/src/lib/widgets/DynamicWidget/views/AccountAndSecuritySettingsView/EmbeddedWalletExportSection/EmbeddedWalletExportSection.js +5 -2
- package/src/lib/widgets/DynamicWidget/views/ExportAndRecoveryView/ExportAndRecoveryView.cjs +3 -1
- package/src/lib/widgets/DynamicWidget/views/ExportAndRecoveryView/ExportAndRecoveryView.js +3 -1
|
@@ -1,35 +1,55 @@
|
|
|
1
1
|
'use client'
|
|
2
2
|
import { jsx } from 'react/jsx-runtime';
|
|
3
3
|
import { createContext, useState, useCallback, useMemo } from 'react';
|
|
4
|
-
import { ErrorCode } from '@dynamic-labs/utils';
|
|
4
|
+
import { ErrorCode, SdkErrorCode } from '@dynamic-labs/utils';
|
|
5
5
|
import { logger } from '../../shared/logger.js';
|
|
6
6
|
import { createProviderHook } from '../../shared/utils/functions/createProviderHook/createProviderHook.js';
|
|
7
7
|
|
|
8
8
|
const FALLBACK_ERROR_LOG_EVENT = 'ui.fallback_error_shown';
|
|
9
|
-
|
|
10
|
-
const
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
9
|
+
const DEFAULT_ERROR_MESSAGE = 'Something went wrong. Please try again.';
|
|
10
|
+
const MESSAGE_SIGNATURE_DENIED = 'Message signature denied.';
|
|
11
|
+
const UNLOCK_WALLET_MESSAGE = 'Please unlock your wallet extension and try again.';
|
|
12
|
+
const INTERNAL_ERROR_MESSAGE = 'There was an internal error. Please try again.';
|
|
13
|
+
let _errorMessageMap;
|
|
14
|
+
const getErrorMessageMap = () => {
|
|
15
|
+
if (!_errorMessageMap) {
|
|
16
|
+
_errorMessageMap = {
|
|
17
|
+
'-1': DEFAULT_ERROR_MESSAGE,
|
|
18
|
+
'-32000': MESSAGE_SIGNATURE_DENIED,
|
|
19
|
+
'-32002': UNLOCK_WALLET_MESSAGE,
|
|
20
|
+
'-32003': MESSAGE_SIGNATURE_DENIED,
|
|
21
|
+
'-32602': 'Invalid parameters. Please try again.',
|
|
22
|
+
'-32603': INTERNAL_ERROR_MESSAGE,
|
|
23
|
+
0: MESSAGE_SIGNATURE_DENIED,
|
|
24
|
+
4001: MESSAGE_SIGNATURE_DENIED,
|
|
25
|
+
4100: UNLOCK_WALLET_MESSAGE,
|
|
26
|
+
4900: INTERNAL_ERROR_MESSAGE,
|
|
27
|
+
5001: MESSAGE_SIGNATURE_DENIED,
|
|
28
|
+
5002: MESSAGE_SIGNATURE_DENIED,
|
|
29
|
+
account_already_linked_to_different_profile: 'This social account is already linked to a different profile.',
|
|
30
|
+
[SdkErrorCode.CONNECTION_REJECTED]: 'Connection rejected. Please try again.',
|
|
31
|
+
general_error: DEFAULT_ERROR_MESSAGE,
|
|
32
|
+
[SdkErrorCode.INVALID_EMAIL_VERIFICATION]: 'The verification link is no longer valid. Please start again.',
|
|
33
|
+
metamask_timeout: 'Whoops. Looks like something went wrong. Please try again.',
|
|
34
|
+
[SdkErrorCode.MISSING_NONCE]: DEFAULT_ERROR_MESSAGE,
|
|
35
|
+
'missing-public-address': 'Connection cancelled. Please try again',
|
|
36
|
+
no_webauthn_support_error: 'Your browser does not support passkeys. Please try a different browser.',
|
|
37
|
+
oauth_error: 'Authentication failed. Please try again.',
|
|
38
|
+
oauth_window_blocked: 'To connect to your social account, enable popups in your browser and then try again.',
|
|
39
|
+
oauth_window_timeout: 'Session time out. Please try again.',
|
|
40
|
+
provider_not_enabled: 'This sign-in provider is not enabled. Please contact the app administrator.',
|
|
41
|
+
signin_error: 'Sign-in failed. Please try again.',
|
|
42
|
+
social_linking_not_enabled: 'Social account linking is not enabled for this application.',
|
|
43
|
+
[SdkErrorCode.TOO_MANY_EMAIL_VERIFICATION_ATTEMPTS]: 'Too many email verification attempts, please try again later',
|
|
44
|
+
[SdkErrorCode.UNKNOWN_ERROR]: 'An unexpected error occurred. Please try again.',
|
|
45
|
+
[SdkErrorCode.USER_CANCELLED]: '',
|
|
46
|
+
[SdkErrorCode.USER_CANCELLED_OAUTH]: '',
|
|
47
|
+
verification_error: 'Verification failed. Please try again.',
|
|
48
|
+
[SdkErrorCode.WALLET_NOT_DEPLOYED]: 'Your smart wallet has not been deployed.',
|
|
49
|
+
wrong_email_verification_token: 'The code you entered is incorrect. Please try again.',
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
return _errorMessageMap;
|
|
33
53
|
};
|
|
34
54
|
const ErrorContext = createContext(undefined);
|
|
35
55
|
const ErrorContextProvider = ({ children }) => {
|
|
@@ -50,12 +70,12 @@ const ErrorContextProvider = ({ children }) => {
|
|
|
50
70
|
source: 'setDefaultError',
|
|
51
71
|
time: 0,
|
|
52
72
|
});
|
|
53
|
-
setError(
|
|
73
|
+
setError(DEFAULT_ERROR_MESSAGE, ErrorCode.DEFAULT);
|
|
54
74
|
}, [setError]);
|
|
55
75
|
/** @deprecated Prefer setError with a translation key instead */
|
|
56
76
|
const setErrorMessage = useCallback((status, error, source) => {
|
|
57
|
-
const mappedMessage =
|
|
58
|
-
if (
|
|
77
|
+
const mappedMessage = getErrorMessageMap()[status];
|
|
78
|
+
if (mappedMessage === undefined) {
|
|
59
79
|
logger.instrument(FALLBACK_ERROR_LOG_EVENT, {
|
|
60
80
|
error: error instanceof Error ? error.message : undefined,
|
|
61
81
|
errorCode: status,
|
|
@@ -64,7 +84,7 @@ const ErrorContextProvider = ({ children }) => {
|
|
|
64
84
|
time: 0,
|
|
65
85
|
});
|
|
66
86
|
}
|
|
67
|
-
setError(mappedMessage !== null && mappedMessage !== void 0 ? mappedMessage :
|
|
87
|
+
setError(mappedMessage !== null && mappedMessage !== void 0 ? mappedMessage : DEFAULT_ERROR_MESSAGE);
|
|
68
88
|
}, [setError]);
|
|
69
89
|
const clearError = useCallback(() => {
|
|
70
90
|
_setError(undefined);
|
|
@@ -20,7 +20,7 @@ var getOnrampProviders = require('./utils/getOnrampProviders.cjs');
|
|
|
20
20
|
|
|
21
21
|
const OnrampContext = React.createContext(undefined);
|
|
22
22
|
const OnrampContextProvider = ({ children, }) => {
|
|
23
|
-
var _a, _b, _c, _d, _e;
|
|
23
|
+
var _a, _b, _c, _d, _e, _f, _g, _h;
|
|
24
24
|
const promiseRef = React.useRef(null);
|
|
25
25
|
const [selectedOnrampProvider, setSelectedOnrampProvider] = React.useState();
|
|
26
26
|
const [showOnramp, _setShowOnramp] = React.useState(false);
|
|
@@ -29,8 +29,13 @@ const OnrampContextProvider = ({ children, }) => {
|
|
|
29
29
|
const { environmentId, network, primaryWallet, projectSettings, overrides } = useInternalDynamicContext.useInternalDynamicContext();
|
|
30
30
|
const { setDynamicWidgetView } = DynamicWidgetContext.useWidgetContext();
|
|
31
31
|
const [enabledOnrampProvidersTarget, setEnabledOnrampProvidersTarget] = React.useState({});
|
|
32
|
-
//
|
|
33
|
-
const [
|
|
32
|
+
// Manual trigger for programmatic flows (openOnramp, setEnabledOnrampProvidersTargetValue)
|
|
33
|
+
const [manualFetchTriggered, setManualFetchTriggered] = React.useState(false);
|
|
34
|
+
// Auto-fetch when onramps are configured in the dashboard so the Buy button
|
|
35
|
+
// is available in the funding-methods view. When unconfigured, skip the fetch
|
|
36
|
+
// to avoid wasting bandwidth on SDK mount (esp. on slow mobile connections).
|
|
37
|
+
const hasOnrampsConfigured = Boolean((_c = (_b = (_a = projectSettings === null || projectSettings === void 0 ? void 0 : projectSettings.sdk) === null || _a === void 0 ? void 0 : _a.funding) === null || _b === void 0 ? void 0 : _b.onramps) === null || _c === void 0 ? void 0 : _c.length);
|
|
38
|
+
const shouldFetchOnramps = manualFetchTriggered || hasOnrampsConfigured;
|
|
34
39
|
const setShowOnramp = React.useCallback((value) => {
|
|
35
40
|
_setShowOnramp(value);
|
|
36
41
|
if (!value && promiseRef.current) {
|
|
@@ -48,7 +53,7 @@ const OnrampContextProvider = ({ children, }) => {
|
|
|
48
53
|
});
|
|
49
54
|
// Trigger fetch when target is set with specific parameters
|
|
50
55
|
if (address || token || network || tokenAmount || chainName || currency) {
|
|
51
|
-
|
|
56
|
+
setManualFetchTriggered(true);
|
|
52
57
|
}
|
|
53
58
|
}, []);
|
|
54
59
|
const resetOverrides = React.useCallback(() => {
|
|
@@ -60,7 +65,7 @@ const OnrampContextProvider = ({ children, }) => {
|
|
|
60
65
|
includeDisabled: true,
|
|
61
66
|
network,
|
|
62
67
|
primaryWallet,
|
|
63
|
-
projectSettingsOnramps: (
|
|
68
|
+
projectSettingsOnramps: (_e = (_d = projectSettings === null || projectSettings === void 0 ? void 0 : projectSettings.sdk) === null || _d === void 0 ? void 0 : _d.funding) === null || _e === void 0 ? void 0 : _e.onramps,
|
|
64
69
|
shouldFetch: shouldFetchOnramps,
|
|
65
70
|
target: enabledOnrampProvidersTarget,
|
|
66
71
|
});
|
|
@@ -101,7 +106,7 @@ const OnrampContextProvider = ({ children, }) => {
|
|
|
101
106
|
return Boolean(((_c = (_b = (_a = projectSettings === null || projectSettings === void 0 ? void 0 : projectSettings.sdk) === null || _a === void 0 ? void 0 : _a.funding) === null || _b === void 0 ? void 0 : _b.onramps) === null || _c === void 0 ? void 0 : _c.length) &&
|
|
102
107
|
enabledOnrampProvidersInDashboard.length);
|
|
103
108
|
}, [
|
|
104
|
-
(
|
|
109
|
+
(_h = (_g = (_f = projectSettings === null || projectSettings === void 0 ? void 0 : projectSettings.sdk) === null || _f === void 0 ? void 0 : _f.funding) === null || _g === void 0 ? void 0 : _g.onramps) === null || _h === void 0 ? void 0 : _h.length,
|
|
105
110
|
enabledOnrampProvidersInDashboard.length,
|
|
106
111
|
onrampOverrides.length,
|
|
107
112
|
overrides === null || overrides === void 0 ? void 0 : overrides.onrampOptions,
|
|
@@ -131,8 +136,8 @@ const OnrampContextProvider = ({ children, }) => {
|
|
|
131
136
|
onrampOverrides,
|
|
132
137
|
overrides === null || overrides === void 0 ? void 0 : overrides.onrampOptions,
|
|
133
138
|
]);
|
|
134
|
-
const openOnramp = React.useCallback((
|
|
135
|
-
var
|
|
139
|
+
const openOnramp = React.useCallback((_j) => _tslib.__awaiter(void 0, [_j], void 0, function* ({ onrampProvider, address, token, tokenAmount, network: networkOverride, chainName, currency, overrideOnRamp, payingWithDynamic, merchantName, }) {
|
|
140
|
+
var _k, _l, _m, _o;
|
|
136
141
|
if (!onrampEnabled && !overrideOnRamp && !payingWithDynamic) {
|
|
137
142
|
throw new Error('Onramp is not enabled');
|
|
138
143
|
}
|
|
@@ -142,8 +147,8 @@ const OnrampContextProvider = ({ children, }) => {
|
|
|
142
147
|
}
|
|
143
148
|
promiseRef.current = new utils.DeferredPromise();
|
|
144
149
|
// Trigger onramp providers fetch if not already done
|
|
145
|
-
if (!
|
|
146
|
-
|
|
150
|
+
if (!manualFetchTriggered) {
|
|
151
|
+
setManualFetchTriggered(true);
|
|
147
152
|
}
|
|
148
153
|
let localOnrampProviders = enabledOnrampProvidersInDashboardOptions;
|
|
149
154
|
const networkToUse = networkOverride || network;
|
|
@@ -162,7 +167,7 @@ const OnrampContextProvider = ({ children, }) => {
|
|
|
162
167
|
Boolean(address);
|
|
163
168
|
if (payingWithDynamic && !allPayingParameters) {
|
|
164
169
|
rejectPromiseRef.rejectPromiseRef(promiseRef, new Error('PayingWithDynamic: Missing parameters'));
|
|
165
|
-
return (
|
|
170
|
+
return (_k = promiseRef.current) === null || _k === void 0 ? void 0 : _k.promise;
|
|
166
171
|
}
|
|
167
172
|
if (shouldOverrideOnrampProviders)
|
|
168
173
|
setOverride(true);
|
|
@@ -184,15 +189,15 @@ const OnrampContextProvider = ({ children, }) => {
|
|
|
184
189
|
const onrampOption = localOnrampProviders.find((p) => p.id === onrampProvider);
|
|
185
190
|
if (payingWithDynamic && !onrampOption) {
|
|
186
191
|
rejectPromiseRef.rejectPromiseRef(promiseRef, new Error('PayingWithDynamic: Onramp provider not found'));
|
|
187
|
-
return (
|
|
192
|
+
return (_l = promiseRef.current) === null || _l === void 0 ? void 0 : _l.promise;
|
|
188
193
|
}
|
|
189
194
|
if (!onrampOption) {
|
|
190
195
|
rejectPromiseRef.rejectPromiseRef(promiseRef, new Error('Onramp provider not found'));
|
|
191
|
-
return (
|
|
196
|
+
return (_m = promiseRef.current) === null || _m === void 0 ? void 0 : _m.promise;
|
|
192
197
|
}
|
|
193
198
|
setOverrideOnrampProvider(onrampOption);
|
|
194
199
|
setSelectedAndShowOnramp({ payingWithDynamic, provider: onrampOption });
|
|
195
|
-
return (
|
|
200
|
+
return (_o = promiseRef.current) === null || _o === void 0 ? void 0 : _o.promise;
|
|
196
201
|
}), [
|
|
197
202
|
enabledOnrampProvidersInDashboardOptions,
|
|
198
203
|
environmentId,
|
|
@@ -200,7 +205,7 @@ const OnrampContextProvider = ({ children, }) => {
|
|
|
200
205
|
primaryWallet,
|
|
201
206
|
network,
|
|
202
207
|
setSelectedAndShowOnramp,
|
|
203
|
-
|
|
208
|
+
manualFetchTriggered,
|
|
204
209
|
]);
|
|
205
210
|
const selectedOnramp = React.useMemo(() => {
|
|
206
211
|
let selected;
|
|
@@ -16,7 +16,7 @@ import { getOnrampProviders } from './utils/getOnrampProviders.js';
|
|
|
16
16
|
|
|
17
17
|
const OnrampContext = createContext(undefined);
|
|
18
18
|
const OnrampContextProvider = ({ children, }) => {
|
|
19
|
-
var _a, _b, _c, _d, _e;
|
|
19
|
+
var _a, _b, _c, _d, _e, _f, _g, _h;
|
|
20
20
|
const promiseRef = useRef(null);
|
|
21
21
|
const [selectedOnrampProvider, setSelectedOnrampProvider] = useState();
|
|
22
22
|
const [showOnramp, _setShowOnramp] = useState(false);
|
|
@@ -25,8 +25,13 @@ const OnrampContextProvider = ({ children, }) => {
|
|
|
25
25
|
const { environmentId, network, primaryWallet, projectSettings, overrides } = useInternalDynamicContext();
|
|
26
26
|
const { setDynamicWidgetView } = useWidgetContext();
|
|
27
27
|
const [enabledOnrampProvidersTarget, setEnabledOnrampProvidersTarget] = useState({});
|
|
28
|
-
//
|
|
29
|
-
const [
|
|
28
|
+
// Manual trigger for programmatic flows (openOnramp, setEnabledOnrampProvidersTargetValue)
|
|
29
|
+
const [manualFetchTriggered, setManualFetchTriggered] = useState(false);
|
|
30
|
+
// Auto-fetch when onramps are configured in the dashboard so the Buy button
|
|
31
|
+
// is available in the funding-methods view. When unconfigured, skip the fetch
|
|
32
|
+
// to avoid wasting bandwidth on SDK mount (esp. on slow mobile connections).
|
|
33
|
+
const hasOnrampsConfigured = Boolean((_c = (_b = (_a = projectSettings === null || projectSettings === void 0 ? void 0 : projectSettings.sdk) === null || _a === void 0 ? void 0 : _a.funding) === null || _b === void 0 ? void 0 : _b.onramps) === null || _c === void 0 ? void 0 : _c.length);
|
|
34
|
+
const shouldFetchOnramps = manualFetchTriggered || hasOnrampsConfigured;
|
|
30
35
|
const setShowOnramp = useCallback((value) => {
|
|
31
36
|
_setShowOnramp(value);
|
|
32
37
|
if (!value && promiseRef.current) {
|
|
@@ -44,7 +49,7 @@ const OnrampContextProvider = ({ children, }) => {
|
|
|
44
49
|
});
|
|
45
50
|
// Trigger fetch when target is set with specific parameters
|
|
46
51
|
if (address || token || network || tokenAmount || chainName || currency) {
|
|
47
|
-
|
|
52
|
+
setManualFetchTriggered(true);
|
|
48
53
|
}
|
|
49
54
|
}, []);
|
|
50
55
|
const resetOverrides = useCallback(() => {
|
|
@@ -56,7 +61,7 @@ const OnrampContextProvider = ({ children, }) => {
|
|
|
56
61
|
includeDisabled: true,
|
|
57
62
|
network,
|
|
58
63
|
primaryWallet,
|
|
59
|
-
projectSettingsOnramps: (
|
|
64
|
+
projectSettingsOnramps: (_e = (_d = projectSettings === null || projectSettings === void 0 ? void 0 : projectSettings.sdk) === null || _d === void 0 ? void 0 : _d.funding) === null || _e === void 0 ? void 0 : _e.onramps,
|
|
60
65
|
shouldFetch: shouldFetchOnramps,
|
|
61
66
|
target: enabledOnrampProvidersTarget,
|
|
62
67
|
});
|
|
@@ -97,7 +102,7 @@ const OnrampContextProvider = ({ children, }) => {
|
|
|
97
102
|
return Boolean(((_c = (_b = (_a = projectSettings === null || projectSettings === void 0 ? void 0 : projectSettings.sdk) === null || _a === void 0 ? void 0 : _a.funding) === null || _b === void 0 ? void 0 : _b.onramps) === null || _c === void 0 ? void 0 : _c.length) &&
|
|
98
103
|
enabledOnrampProvidersInDashboard.length);
|
|
99
104
|
}, [
|
|
100
|
-
(
|
|
105
|
+
(_h = (_g = (_f = projectSettings === null || projectSettings === void 0 ? void 0 : projectSettings.sdk) === null || _f === void 0 ? void 0 : _f.funding) === null || _g === void 0 ? void 0 : _g.onramps) === null || _h === void 0 ? void 0 : _h.length,
|
|
101
106
|
enabledOnrampProvidersInDashboard.length,
|
|
102
107
|
onrampOverrides.length,
|
|
103
108
|
overrides === null || overrides === void 0 ? void 0 : overrides.onrampOptions,
|
|
@@ -127,8 +132,8 @@ const OnrampContextProvider = ({ children, }) => {
|
|
|
127
132
|
onrampOverrides,
|
|
128
133
|
overrides === null || overrides === void 0 ? void 0 : overrides.onrampOptions,
|
|
129
134
|
]);
|
|
130
|
-
const openOnramp = useCallback((
|
|
131
|
-
var
|
|
135
|
+
const openOnramp = useCallback((_j) => __awaiter(void 0, [_j], void 0, function* ({ onrampProvider, address, token, tokenAmount, network: networkOverride, chainName, currency, overrideOnRamp, payingWithDynamic, merchantName, }) {
|
|
136
|
+
var _k, _l, _m, _o;
|
|
132
137
|
if (!onrampEnabled && !overrideOnRamp && !payingWithDynamic) {
|
|
133
138
|
throw new Error('Onramp is not enabled');
|
|
134
139
|
}
|
|
@@ -138,8 +143,8 @@ const OnrampContextProvider = ({ children, }) => {
|
|
|
138
143
|
}
|
|
139
144
|
promiseRef.current = new DeferredPromise();
|
|
140
145
|
// Trigger onramp providers fetch if not already done
|
|
141
|
-
if (!
|
|
142
|
-
|
|
146
|
+
if (!manualFetchTriggered) {
|
|
147
|
+
setManualFetchTriggered(true);
|
|
143
148
|
}
|
|
144
149
|
let localOnrampProviders = enabledOnrampProvidersInDashboardOptions;
|
|
145
150
|
const networkToUse = networkOverride || network;
|
|
@@ -158,7 +163,7 @@ const OnrampContextProvider = ({ children, }) => {
|
|
|
158
163
|
Boolean(address);
|
|
159
164
|
if (payingWithDynamic && !allPayingParameters) {
|
|
160
165
|
rejectPromiseRef(promiseRef, new Error('PayingWithDynamic: Missing parameters'));
|
|
161
|
-
return (
|
|
166
|
+
return (_k = promiseRef.current) === null || _k === void 0 ? void 0 : _k.promise;
|
|
162
167
|
}
|
|
163
168
|
if (shouldOverrideOnrampProviders)
|
|
164
169
|
setOverride(true);
|
|
@@ -180,15 +185,15 @@ const OnrampContextProvider = ({ children, }) => {
|
|
|
180
185
|
const onrampOption = localOnrampProviders.find((p) => p.id === onrampProvider);
|
|
181
186
|
if (payingWithDynamic && !onrampOption) {
|
|
182
187
|
rejectPromiseRef(promiseRef, new Error('PayingWithDynamic: Onramp provider not found'));
|
|
183
|
-
return (
|
|
188
|
+
return (_l = promiseRef.current) === null || _l === void 0 ? void 0 : _l.promise;
|
|
184
189
|
}
|
|
185
190
|
if (!onrampOption) {
|
|
186
191
|
rejectPromiseRef(promiseRef, new Error('Onramp provider not found'));
|
|
187
|
-
return (
|
|
192
|
+
return (_m = promiseRef.current) === null || _m === void 0 ? void 0 : _m.promise;
|
|
188
193
|
}
|
|
189
194
|
setOverrideOnrampProvider(onrampOption);
|
|
190
195
|
setSelectedAndShowOnramp({ payingWithDynamic, provider: onrampOption });
|
|
191
|
-
return (
|
|
196
|
+
return (_o = promiseRef.current) === null || _o === void 0 ? void 0 : _o.promise;
|
|
192
197
|
}), [
|
|
193
198
|
enabledOnrampProvidersInDashboardOptions,
|
|
194
199
|
environmentId,
|
|
@@ -196,7 +201,7 @@ const OnrampContextProvider = ({ children, }) => {
|
|
|
196
201
|
primaryWallet,
|
|
197
202
|
network,
|
|
198
203
|
setSelectedAndShowOnramp,
|
|
199
|
-
|
|
204
|
+
manualFetchTriggered,
|
|
200
205
|
]);
|
|
201
206
|
const selectedOnramp = useMemo(() => {
|
|
202
207
|
let selected;
|
|
@@ -5,7 +5,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
5
5
|
|
|
6
6
|
var _tslib = require('../../../../../_virtual/_tslib.cjs');
|
|
7
7
|
var sdkApiCore = require('@dynamic-labs/sdk-api-core');
|
|
8
|
-
var utils = require('@dynamic-labs/utils');
|
|
8
|
+
var utils$1 = require('@dynamic-labs/utils');
|
|
9
9
|
require('@dynamic-labs/iconic');
|
|
10
10
|
require('@dynamic-labs/wallet-connector-core');
|
|
11
11
|
require('react');
|
|
@@ -17,6 +17,7 @@ require('../../../utils/constants/colors.cjs');
|
|
|
17
17
|
require('../../../utils/constants/values.cjs');
|
|
18
18
|
require('../../../shared/consts/index.cjs');
|
|
19
19
|
var api = require('../api.cjs');
|
|
20
|
+
var utils = require('../utils.cjs');
|
|
20
21
|
require('@dynamic-labs-sdk/client/core');
|
|
21
22
|
require('eventemitter3');
|
|
22
23
|
require('@dynamic-labs-sdk/client');
|
|
@@ -109,7 +110,7 @@ const updatePasskeyRecoveryEmail = (_d) => _tslib.__awaiter(void 0, [_d], void 0
|
|
|
109
110
|
}
|
|
110
111
|
catch (e) {
|
|
111
112
|
yield logResponse(e, 'Error while trying to update recovery email');
|
|
112
|
-
throw new utils.DynamicError('Error updating recovery email');
|
|
113
|
+
throw new utils$1.DynamicError('Error updating recovery email');
|
|
113
114
|
}
|
|
114
115
|
});
|
|
115
116
|
const getUserPasskeys = (_e) => _tslib.__awaiter(void 0, [_e], void 0, function* ({ environmentId, }) {
|
|
@@ -177,24 +178,24 @@ const registerSessionKey = (_h) => _tslib.__awaiter(void 0, [_h], void 0, functi
|
|
|
177
178
|
});
|
|
178
179
|
}
|
|
179
180
|
catch (error) {
|
|
180
|
-
if (error
|
|
181
|
-
const responseError = yield utils.ResponseError.fromResponse({
|
|
181
|
+
if (utils.isResponseLike(error)) {
|
|
182
|
+
const responseError = yield utils$1.ResponseError.fromResponse({
|
|
182
183
|
cause: error,
|
|
183
184
|
message: 'Error register session key',
|
|
184
185
|
});
|
|
185
186
|
logger.logger.error(responseError, { prevSessionKeySignature, publicKey });
|
|
186
|
-
utils.tracing.logEvent('session-key', 'Error registering session key', utils.tracing.formatObject({
|
|
187
|
+
utils$1.tracing.logEvent('session-key', 'Error registering session key', utils$1.tracing.formatObject({
|
|
187
188
|
prevSessionKeySignature,
|
|
188
189
|
publicKey,
|
|
189
190
|
walletId,
|
|
190
191
|
}));
|
|
191
|
-
if (utils.PlatformService.isNativeMobile) {
|
|
192
|
-
logger.logger.instrument(utils.tracing.packScopes());
|
|
192
|
+
if (utils$1.PlatformService.isNativeMobile) {
|
|
193
|
+
logger.logger.instrument(utils$1.tracing.packScopes());
|
|
193
194
|
}
|
|
194
195
|
if (responseError.response.status === 422) {
|
|
195
196
|
if (responseError.json.code ===
|
|
196
197
|
sdkApiCore.UnprocessableEntityErrorCode.InvalidSessionPublicKey) {
|
|
197
|
-
throw new utils.InvalidEmbeddedWalletSessionKeyError(responseError.json.error);
|
|
198
|
+
throw new utils$1.InvalidEmbeddedWalletSessionKeyError(responseError.json.error);
|
|
198
199
|
}
|
|
199
200
|
}
|
|
200
201
|
throw responseError;
|
|
@@ -216,7 +217,7 @@ const getCreateEmbeddedWalletAccountRequest = (_j) => _tslib.__awaiter(void 0, [
|
|
|
216
217
|
}
|
|
217
218
|
catch (e) {
|
|
218
219
|
yield logResponse(e, 'Error fetching create embedded wallet account request', { chain });
|
|
219
|
-
throw new utils.DynamicError('Error fetching create embedded wallet account request');
|
|
220
|
+
throw new utils$1.DynamicError('Error fetching create embedded wallet account request');
|
|
220
221
|
}
|
|
221
222
|
});
|
|
222
223
|
const createEmbeddedWalletAccount = (_k) => _tslib.__awaiter(void 0, [_k], void 0, function* ({ environmentId, createEmbeddedWalletAccountRequest, }) {
|
|
@@ -233,7 +234,7 @@ const createEmbeddedWalletAccount = (_k) => _tslib.__awaiter(void 0, [_k], void
|
|
|
233
234
|
yield logResponse(e, '[createEmbeddedWalletAccount] Error creating embedded wallet account', {
|
|
234
235
|
createEmbeddedWalletAccountRequest,
|
|
235
236
|
});
|
|
236
|
-
throw new utils.DynamicError('[createEmbeddedWalletAccount] Error creating embedded wallet account');
|
|
237
|
+
throw new utils$1.DynamicError('[createEmbeddedWalletAccount] Error creating embedded wallet account');
|
|
237
238
|
}
|
|
238
239
|
});
|
|
239
240
|
const getDeleteEmbeddedWalletsRequest = (_l) => _tslib.__awaiter(void 0, [_l], void 0, function* ({ environmentId, walletId, }) {
|
|
@@ -246,7 +247,7 @@ const getDeleteEmbeddedWalletsRequest = (_l) => _tslib.__awaiter(void 0, [_l], v
|
|
|
246
247
|
}
|
|
247
248
|
catch (e) {
|
|
248
249
|
yield logResponse(e, 'Error fetching delete embedded wallet request');
|
|
249
|
-
throw new utils.DynamicError('Error fetching delete embedded wallets request');
|
|
250
|
+
throw new utils$1.DynamicError('Error fetching delete embedded wallets request');
|
|
250
251
|
}
|
|
251
252
|
});
|
|
252
253
|
const deleteEmbeddedWallets = (_m) => _tslib.__awaiter(void 0, [_m], void 0, function* ({ environmentId, deleteEmbeddedWalletsRequest, }) {
|
|
@@ -263,12 +264,12 @@ const deleteEmbeddedWallets = (_m) => _tslib.__awaiter(void 0, [_m], void 0, fun
|
|
|
263
264
|
yield logResponse(e, 'Error deleting embedded wallets', {
|
|
264
265
|
deleteEmbeddedWalletsRequest,
|
|
265
266
|
});
|
|
266
|
-
throw new utils.DynamicError('Error deleting embedded wallets');
|
|
267
|
+
throw new utils$1.DynamicError('Error deleting embedded wallets');
|
|
267
268
|
}
|
|
268
269
|
});
|
|
269
270
|
const logResponse = (error, message, data) => _tslib.__awaiter(void 0, void 0, void 0, function* () {
|
|
270
|
-
if (error
|
|
271
|
-
const responseError = yield utils.ResponseError.fromResponse({
|
|
271
|
+
if (utils.isResponseLike(error)) {
|
|
272
|
+
const responseError = yield utils$1.ResponseError.fromResponse({
|
|
272
273
|
cause: error,
|
|
273
274
|
message,
|
|
274
275
|
});
|
|
@@ -13,6 +13,7 @@ import '../../../utils/constants/colors.js';
|
|
|
13
13
|
import '../../../utils/constants/values.js';
|
|
14
14
|
import '../../../shared/consts/index.js';
|
|
15
15
|
import { sdkApi } from '../api.js';
|
|
16
|
+
import { isResponseLike } from '../utils.js';
|
|
16
17
|
import '@dynamic-labs-sdk/client/core';
|
|
17
18
|
import 'eventemitter3';
|
|
18
19
|
import '@dynamic-labs-sdk/client';
|
|
@@ -173,7 +174,7 @@ const registerSessionKey = (_h) => __awaiter(void 0, [_h], void 0, function* ({
|
|
|
173
174
|
});
|
|
174
175
|
}
|
|
175
176
|
catch (error) {
|
|
176
|
-
if (error
|
|
177
|
+
if (isResponseLike(error)) {
|
|
177
178
|
const responseError = yield ResponseError.fromResponse({
|
|
178
179
|
cause: error,
|
|
179
180
|
message: 'Error register session key',
|
|
@@ -263,7 +264,7 @@ const deleteEmbeddedWallets = (_m) => __awaiter(void 0, [_m], void 0, function*
|
|
|
263
264
|
}
|
|
264
265
|
});
|
|
265
266
|
const logResponse = (error, message, data) => __awaiter(void 0, void 0, void 0, function* () {
|
|
266
|
-
if (error
|
|
267
|
+
if (isResponseLike(error)) {
|
|
267
268
|
const responseError = yield ResponseError.fromResponse({
|
|
268
269
|
cause: error,
|
|
269
270
|
message,
|
|
@@ -46,7 +46,7 @@ const updateUserProfileFields = (environmentId, fields) => _tslib.__awaiter(void
|
|
|
46
46
|
}
|
|
47
47
|
catch (e) {
|
|
48
48
|
const error = yield utils.logResponseError(e, 'Error updateUserProfileFields');
|
|
49
|
-
if (e
|
|
49
|
+
if (utils.isResponseLike(e)) {
|
|
50
50
|
if (error.code === 'email_already_exists') {
|
|
51
51
|
throw new utils$1.EmailAlreadyExistsError();
|
|
52
52
|
}
|
|
@@ -22,7 +22,7 @@ import '../../../store/state/nonce/nonce.js';
|
|
|
22
22
|
import '@dynamic-labs-wallet/browser-wallet-client';
|
|
23
23
|
import { sdkApi } from '../api.js';
|
|
24
24
|
import { ELEVATED_ACCESS_TOKEN_HEADER } from '../constants.js';
|
|
25
|
-
import { logResponseError } from '../utils.js';
|
|
25
|
+
import { logResponseError, isResponseLike } from '../utils.js';
|
|
26
26
|
import '@dynamic-labs/locale';
|
|
27
27
|
import '../../../store/state/dynamicContextProps/dynamicContextProps.js';
|
|
28
28
|
import '../../../store/state/primaryWalletId/primaryWalletId.js';
|
|
@@ -42,7 +42,7 @@ const updateUserProfileFields = (environmentId, fields) => __awaiter(void 0, voi
|
|
|
42
42
|
}
|
|
43
43
|
catch (e) {
|
|
44
44
|
const error = yield logResponseError(e, 'Error updateUserProfileFields');
|
|
45
|
-
if (e
|
|
45
|
+
if (isResponseLike(e)) {
|
|
46
46
|
if (error.code === 'email_already_exists') {
|
|
47
47
|
throw new EmailAlreadyExistsError();
|
|
48
48
|
}
|
|
@@ -20,9 +20,13 @@ var api = require('./api.cjs');
|
|
|
20
20
|
|
|
21
21
|
const RATE_LIMIT_MESSAGE = 'Too many requests. Please try again later.';
|
|
22
22
|
const NETWORK_ERROR_MESSAGE = 'Request failed. You may be sending too many requests — please wait a moment and try again.';
|
|
23
|
+
// expo/fetch returns response objects that aren't the same class as global Response,
|
|
24
|
+
// so instanceof checks fail on React Native / Expo SDK 56+. Duck-type instead.
|
|
25
|
+
const isResponseLike = (e) => typeof (e === null || e === void 0 ? void 0 : e.json) === 'function' &&
|
|
26
|
+
typeof (e === null || e === void 0 ? void 0 : e.status) === 'number';
|
|
23
27
|
const logResponseError = (e_1, message_1, ...args_1) => _tslib.__awaiter(void 0, [e_1, message_1, ...args_1], void 0, function* (e, message, logLevel = 'error') {
|
|
24
28
|
var _a, _b, _c, _d, _e, _f, _g;
|
|
25
|
-
if (e
|
|
29
|
+
if (isResponseLike(e)) {
|
|
26
30
|
const requestId = (_b = (_a = e.headers) === null || _a === void 0 ? void 0 : _a.get('x-dyn-request-id')) !== null && _b !== void 0 ? _b : undefined;
|
|
27
31
|
const cfRay = (_d = (_c = e.headers) === null || _c === void 0 ? void 0 : _c.get('cf-ray')) !== null && _d !== void 0 ? _d : undefined;
|
|
28
32
|
let data;
|
|
@@ -68,4 +72,5 @@ const getNonce = (environmentId) => _tslib.__awaiter(void 0, void 0, void 0, fun
|
|
|
68
72
|
});
|
|
69
73
|
|
|
70
74
|
exports.getNonce = getNonce;
|
|
75
|
+
exports.isResponseLike = isResponseLike;
|
|
71
76
|
exports.logResponseError = logResponseError;
|
|
@@ -16,9 +16,13 @@ import { sdkApi } from './api.js';
|
|
|
16
16
|
|
|
17
17
|
const RATE_LIMIT_MESSAGE = 'Too many requests. Please try again later.';
|
|
18
18
|
const NETWORK_ERROR_MESSAGE = 'Request failed. You may be sending too many requests — please wait a moment and try again.';
|
|
19
|
+
// expo/fetch returns response objects that aren't the same class as global Response,
|
|
20
|
+
// so instanceof checks fail on React Native / Expo SDK 56+. Duck-type instead.
|
|
21
|
+
const isResponseLike = (e) => typeof (e === null || e === void 0 ? void 0 : e.json) === 'function' &&
|
|
22
|
+
typeof (e === null || e === void 0 ? void 0 : e.status) === 'number';
|
|
19
23
|
const logResponseError = (e_1, message_1, ...args_1) => __awaiter(void 0, [e_1, message_1, ...args_1], void 0, function* (e, message, logLevel = 'error') {
|
|
20
24
|
var _a, _b, _c, _d, _e, _f, _g;
|
|
21
|
-
if (e
|
|
25
|
+
if (isResponseLike(e)) {
|
|
22
26
|
const requestId = (_b = (_a = e.headers) === null || _a === void 0 ? void 0 : _a.get('x-dyn-request-id')) !== null && _b !== void 0 ? _b : undefined;
|
|
23
27
|
const cfRay = (_d = (_c = e.headers) === null || _c === void 0 ? void 0 : _c.get('cf-ray')) !== null && _d !== void 0 ? _d : undefined;
|
|
24
28
|
let data;
|
|
@@ -63,4 +67,4 @@ const getNonce = (environmentId) => __awaiter(void 0, void 0, void 0, function*
|
|
|
63
67
|
}
|
|
64
68
|
});
|
|
65
69
|
|
|
66
|
-
export { getNonce, logResponseError };
|
|
70
|
+
export { getNonce, isResponseLike, logResponseError };
|
|
@@ -176,7 +176,7 @@ const verifyWallet = (environmentId_3, _f) => _tslib.__awaiter(void 0, [environm
|
|
|
176
176
|
}
|
|
177
177
|
catch (e) {
|
|
178
178
|
const data = yield utils.logResponseError(e, 'Error verifyWallet');
|
|
179
|
-
if (data.code ===
|
|
179
|
+
if (data.code === utils$1.SdkErrorCode.WALLET_NOT_DEPLOYED) {
|
|
180
180
|
throw new utils$1.WalletNotDeployedError();
|
|
181
181
|
}
|
|
182
182
|
if (((_g = data.error) === null || _g === void 0 ? void 0 : _g.code) === 'chainalysis_blocked_wallet') {
|
|
@@ -227,7 +227,7 @@ const walletsVerify = (environmentId_4, _l) => _tslib.__awaiter(void 0, [environ
|
|
|
227
227
|
}
|
|
228
228
|
catch (e) {
|
|
229
229
|
const data = yield utils.logResponseError(e, 'Error walletsVerify');
|
|
230
|
-
if (data.code ===
|
|
230
|
+
if (data.code === utils$1.SdkErrorCode.WALLET_NOT_DEPLOYED) {
|
|
231
231
|
throw new utils$1.WalletNotDeployedError();
|
|
232
232
|
}
|
|
233
233
|
if (((_m = data.error) === null || _m === void 0 ? void 0 : _m.code) === 'chainalysis_blocked_wallet') {
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import { __awaiter } from '../../../../../_virtual/_tslib.js';
|
|
3
3
|
import { getElevatedAccessToken } from '@dynamic-labs-sdk/client';
|
|
4
4
|
import { TokenScope, VerifyRequestFromJSON } from '@dynamic-labs/sdk-api-core';
|
|
5
|
-
import { DynamicError, EmbeddedWalletExistsError, WalletUsedError, MergeAccountsConfirmationError, SandboxMaximumThresholdReachedError, WalletNotDeployedError, ChainalysisError, GateBlockedError, NoAccessError, ErrorCode, AccountExistsError } from '@dynamic-labs/utils';
|
|
5
|
+
import { DynamicError, EmbeddedWalletExistsError, WalletUsedError, MergeAccountsConfirmationError, SandboxMaximumThresholdReachedError, SdkErrorCode, WalletNotDeployedError, ChainalysisError, GateBlockedError, NoAccessError, ErrorCode, AccountExistsError } from '@dynamic-labs/utils';
|
|
6
6
|
import '@dynamic-labs-sdk/client/core';
|
|
7
7
|
import 'react';
|
|
8
8
|
import 'eventemitter3';
|
|
@@ -172,7 +172,7 @@ const verifyWallet = (environmentId_3, _f) => __awaiter(void 0, [environmentId_3
|
|
|
172
172
|
}
|
|
173
173
|
catch (e) {
|
|
174
174
|
const data = yield logResponseError(e, 'Error verifyWallet');
|
|
175
|
-
if (data.code ===
|
|
175
|
+
if (data.code === SdkErrorCode.WALLET_NOT_DEPLOYED) {
|
|
176
176
|
throw new WalletNotDeployedError();
|
|
177
177
|
}
|
|
178
178
|
if (((_g = data.error) === null || _g === void 0 ? void 0 : _g.code) === 'chainalysis_blocked_wallet') {
|
|
@@ -223,7 +223,7 @@ const walletsVerify = (environmentId_4, _l) => __awaiter(void 0, [environmentId_
|
|
|
223
223
|
}
|
|
224
224
|
catch (e) {
|
|
225
225
|
const data = yield logResponseError(e, 'Error walletsVerify');
|
|
226
|
-
if (data.code ===
|
|
226
|
+
if (data.code === SdkErrorCode.WALLET_NOT_DEPLOYED) {
|
|
227
227
|
throw new WalletNotDeployedError();
|
|
228
228
|
}
|
|
229
229
|
if (((_m = data.error) === null || _m === void 0 ? void 0 : _m.code) === 'chainalysis_blocked_wallet') {
|
package/src/lib/events/auth.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { LogoutEventMetadata } from '@dynamic-labs-sdk/client';
|
|
2
2
|
import { AuthEventPayload } from '@dynamic-labs/types';
|
|
3
|
+
import { SdkErrorCode } from '@dynamic-labs/utils';
|
|
3
4
|
import { SdkLogoutReason } from '../context/DynamicContext/hooks/useHandleLogout';
|
|
4
5
|
export type AuthEvents = {
|
|
5
6
|
/**
|
|
@@ -8,8 +9,8 @@ export type AuthEvents = {
|
|
|
8
9
|
* For email/sms, specifically happens when users cancels the OTP verification.
|
|
9
10
|
*/
|
|
10
11
|
authFailure: (method: AuthEventPayload,
|
|
11
|
-
/** Will be
|
|
12
|
-
reason:
|
|
12
|
+
/** Will be SdkErrorCode.USER_CANCELLED when cancelled, or the error when there is an error */
|
|
13
|
+
reason: SdkErrorCode.USER_CANCELLED | {
|
|
13
14
|
error: unknown;
|
|
14
15
|
}) => void;
|
|
15
16
|
/** Informs an auth attempt initialized, and provides insight into which auth option it is */
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { JwtVerifiedCredential } from '@dynamic-labs/sdk-api-core';
|
|
2
2
|
import { AuthEventPayload, OtpDestination, PhoneData, UserProfile } from '@dynamic-labs/types';
|
|
3
3
|
import { WalletConnector } from '@dynamic-labs/wallet-connector-core';
|
|
4
|
+
import { SdkErrorCode } from '@dynamic-labs/utils';
|
|
4
5
|
import { Wallet, WalletListViewTabItem } from './wallets';
|
|
5
6
|
export type DynamicEventsCallbacks = {
|
|
6
7
|
onSignedMessage?: (params: {
|
|
@@ -29,7 +30,7 @@ export type DynamicEventsCallbacks = {
|
|
|
29
30
|
* In general triggered when an error occurs or when user cancels out.
|
|
30
31
|
* For email/sms, specifically happens when users cancels the OTP verification.
|
|
31
32
|
*/
|
|
32
|
-
onAuthFailure?: (data: AuthEventPayload, reason:
|
|
33
|
+
onAuthFailure?: (data: AuthEventPayload, reason: SdkErrorCode.USER_CANCELLED | {
|
|
33
34
|
error: unknown;
|
|
34
35
|
}) => void;
|
|
35
36
|
/** Informs an auth attempt initialized, and provides insight into which auth option it is */
|
|
@@ -59,6 +59,10 @@ const getVerifyArgs = (_a) => _tslib.__awaiter(void 0, [_a], void 0, function* (
|
|
|
59
59
|
});
|
|
60
60
|
return result;
|
|
61
61
|
}
|
|
62
|
+
if (!nonce.getNonce()) {
|
|
63
|
+
logger.logger.debug('[getVerifyArgs] Nonce missing, attempting to fetch');
|
|
64
|
+
yield nonce.fetchAndStoreNonce();
|
|
65
|
+
}
|
|
62
66
|
const nonce$1 = nonce.consumeNonce();
|
|
63
67
|
// generate message to sign and then initiate signing step to prove ownership
|
|
64
68
|
const { messageToSign, signedMessage } = yield index.generateMessages(publicWalletAddress, walletConnector, nonce$1, environmentId, displaySiweStatement, siweStatement);
|