@dynamic-labs/sdk-react-core 3.0.3 → 4.0.0-alpha.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (102) hide show
  1. package/CHANGELOG.md +11 -10
  2. package/package.cjs +2 -2
  3. package/package.js +2 -2
  4. package/package.json +12 -12
  5. package/src/lib/components/index.d.ts +0 -1
  6. package/src/lib/context/ConnectWithOtpContext/ConnectWithOtpProvider.cjs +5 -2
  7. package/src/lib/context/ConnectWithOtpContext/ConnectWithOtpProvider.js +5 -2
  8. package/src/lib/context/ConnectWithOtpContext/utils/createSmsHandler.cjs +1 -70
  9. package/src/lib/context/ConnectWithOtpContext/utils/createSmsHandler.d.ts +2 -1
  10. package/src/lib/context/ConnectWithOtpContext/utils/createSmsHandler.js +1 -70
  11. package/src/lib/context/DynamicContext/DynamicContext.cjs +6 -5
  12. package/src/lib/context/DynamicContext/DynamicContext.js +6 -5
  13. package/src/lib/context/DynamicContext/hooks/useHandleLogout/useHandleLogout.cjs +68 -0
  14. package/src/lib/context/DynamicContext/hooks/useHandleLogout/useHandleLogout.js +68 -0
  15. package/src/lib/context/DynamicContext/hooks/useRegisterStorageService/useRegisterStorageService.cjs +2 -0
  16. package/src/lib/context/DynamicContext/hooks/useRegisterStorageService/useRegisterStorageService.js +3 -1
  17. package/src/lib/context/PhantomRedirectContext/useResponseHandlers.cjs +1 -1
  18. package/src/lib/context/PhantomRedirectContext/useResponseHandlers.js +1 -1
  19. package/src/lib/context/SocialRedirectContext/SocialRedirectContext.cjs +1 -1
  20. package/src/lib/context/SocialRedirectContext/SocialRedirectContext.js +1 -1
  21. package/src/lib/context/ViewContext/types/index.d.ts +1 -1
  22. package/src/lib/data/api/embeddedWallets/embeddedWallets.cjs +12 -5
  23. package/src/lib/data/api/embeddedWallets/embeddedWallets.d.ts +4 -3
  24. package/src/lib/data/api/embeddedWallets/embeddedWallets.js +14 -7
  25. package/src/lib/data/api/transactions/blockaid.cjs +23 -0
  26. package/src/lib/data/api/transactions/blockaid.js +19 -0
  27. package/src/lib/events/auth.d.ts +2 -0
  28. package/src/lib/locale/en/translation.cjs +34 -0
  29. package/src/lib/locale/en/translation.d.ts +34 -0
  30. package/src/lib/locale/en/translation.js +34 -0
  31. package/src/lib/shared/assets/caution-triangle.cjs +54 -0
  32. package/src/lib/shared/assets/caution-triangle.js +30 -0
  33. package/src/lib/shared/assets/exclamation-circle.cjs +54 -0
  34. package/src/lib/shared/assets/exclamation-circle.js +30 -0
  35. package/src/lib/shared/assets/exclamation.cjs +52 -0
  36. package/src/lib/shared/assets/exclamation.js +28 -0
  37. package/src/lib/shared/assets/index.d.ts +5 -0
  38. package/src/lib/shared/assets/warning-orange.cjs +54 -0
  39. package/src/lib/shared/assets/warning-orange.js +30 -0
  40. package/src/lib/shared/assets/warning-red.cjs +54 -0
  41. package/src/lib/shared/assets/warning-red.js +30 -0
  42. package/src/lib/styles/index.shadow.cjs +1 -1
  43. package/src/lib/styles/index.shadow.js +1 -1
  44. package/src/lib/utils/constants/localStorage.cjs +6 -0
  45. package/src/lib/utils/constants/localStorage.d.ts +3 -0
  46. package/src/lib/utils/constants/localStorage.js +5 -1
  47. package/src/lib/utils/functions/getNewVerifiedCredentialsFromDiff/getNewVerifiedCredentialsFromDiff.cjs +11 -0
  48. package/src/lib/utils/functions/getNewVerifiedCredentialsFromDiff/getNewVerifiedCredentialsFromDiff.d.ts +2 -0
  49. package/src/lib/utils/functions/getNewVerifiedCredentialsFromDiff/getNewVerifiedCredentialsFromDiff.js +7 -0
  50. package/src/lib/utils/functions/getNewVerifiedCredentialsFromDiff/index.d.ts +1 -0
  51. package/src/lib/utils/hooks/authenticationHooks/useConnectAndSign/useConnectAndSign.cjs +1 -1
  52. package/src/lib/utils/hooks/authenticationHooks/useConnectAndSign/useConnectAndSign.js +1 -1
  53. package/src/lib/utils/hooks/authenticationHooks/useConnectAndSignSplitSteps/useConnectAndSignSplitSteps.cjs +1 -1
  54. package/src/lib/utils/hooks/authenticationHooks/useConnectAndSignSplitSteps/useConnectAndSignSplitSteps.js +1 -1
  55. package/src/lib/utils/hooks/authenticationHooks/useSignConnectOnlyUser/useSignConnectOnlyUser.cjs +1 -1
  56. package/src/lib/utils/hooks/authenticationHooks/useSignConnectOnlyUser/useSignConnectOnlyUser.js +1 -1
  57. package/src/lib/utils/hooks/index.d.ts +1 -0
  58. package/src/lib/utils/hooks/useAuthLayoutChecks/useAuthLayoutChecks.cjs +1 -0
  59. package/src/lib/utils/hooks/useAuthLayoutChecks/useAuthLayoutChecks.js +1 -0
  60. package/src/lib/utils/hooks/useEmbeddedWallet/useSecureEnclaveEmbeddedWallet/useSecureEnclaveEmbeddedWallet.cjs +9 -2
  61. package/src/lib/utils/hooks/useEmbeddedWallet/useSecureEnclaveEmbeddedWallet/useSecureEnclaveEmbeddedWallet.js +9 -2
  62. package/src/lib/utils/hooks/useEmbeddedWallet/useSecureEnclaveEmbeddedWallet/utils.cjs +15 -2
  63. package/src/lib/utils/hooks/useEmbeddedWallet/useSecureEnclaveEmbeddedWallet/utils.d.ts +3 -1
  64. package/src/lib/utils/hooks/useEmbeddedWallet/useSecureEnclaveEmbeddedWallet/utils.js +15 -3
  65. package/src/lib/utils/hooks/useEmbeddedWalletSessionKeys/useEmbeddedWalletSessionKeys.cjs +82 -26
  66. package/src/lib/utils/hooks/useEmbeddedWalletSessionKeys/useEmbeddedWalletSessionKeys.d.ts +19 -2
  67. package/src/lib/utils/hooks/useEmbeddedWalletSessionKeys/useEmbeddedWalletSessionKeys.js +82 -26
  68. package/src/lib/utils/hooks/useEndUserWarning/index.d.ts +1 -0
  69. package/src/lib/utils/hooks/useEndUserWarning/useEndUserWarning.cjs +37 -0
  70. package/src/lib/utils/hooks/useEndUserWarning/useEndUserWarning.d.ts +5 -0
  71. package/src/lib/utils/hooks/useEndUserWarning/useEndUserWarning.js +33 -0
  72. package/src/lib/utils/hooks/useExternalAuth/useExternalAuth.cjs +5 -2
  73. package/src/lib/utils/hooks/useExternalAuth/useExternalAuth.js +5 -2
  74. package/src/lib/utils/hooks/useSetWalletConnectorFetchers/useSetWalletConnectorFetchers.cjs +2 -2
  75. package/src/lib/utils/hooks/useSetWalletConnectorFetchers/useSetWalletConnectorFetchers.d.ts +2 -1
  76. package/src/lib/utils/hooks/useSetWalletConnectorFetchers/useSetWalletConnectorFetchers.js +2 -2
  77. package/src/lib/utils/hooks/useSocialAuth/useSocialAuth.cjs +7 -3
  78. package/src/lib/utils/hooks/useSocialAuth/useSocialAuth.d.ts +2 -1
  79. package/src/lib/utils/hooks/useSocialAuth/useSocialAuth.js +7 -3
  80. package/src/lib/utils/hooks/useTelegramLogin/useTelegramLogin.cjs +25 -24
  81. package/src/lib/utils/hooks/useTelegramLogin/useTelegramLogin.d.ts +7 -1
  82. package/src/lib/utils/hooks/useTelegramLogin/useTelegramLogin.js +25 -24
  83. package/src/lib/utils/hooks/useVerifyWallet/useVerifyWallet.cjs +4 -1
  84. package/src/lib/utils/hooks/useVerifyWallet/useVerifyWallet.js +4 -1
  85. package/src/lib/views/EmailVerification/EmailVerification.cjs +4 -1
  86. package/src/lib/views/EmailVerification/EmailVerification.js +4 -1
  87. package/src/lib/views/GlobalWalletMaliciousView/GlobalWalletMaliciousView.cjs +139 -0
  88. package/src/lib/views/GlobalWalletMaliciousView/GlobalWalletMaliciousView.d.ts +11 -0
  89. package/src/lib/views/GlobalWalletMaliciousView/GlobalWalletMaliciousView.js +134 -0
  90. package/src/lib/views/SmsVerification/useSmsVerification/useSmsVerification.cjs +5 -2
  91. package/src/lib/views/SmsVerification/useSmsVerification/useSmsVerification.js +5 -2
  92. package/src/lib/views/viewToComponentMap.cjs +2 -0
  93. package/src/lib/views/viewToComponentMap.d.ts +1 -0
  94. package/src/lib/views/viewToComponentMap.js +2 -0
  95. package/src/lib/widgets/DynamicWidget/views/GlobalWalletView/GlobalWalletView.cjs +31 -8
  96. package/src/lib/widgets/DynamicWidget/views/GlobalWalletView/GlobalWalletView.js +31 -8
  97. package/src/lib/components/TelegramAutoLogin/TelegramAutoLogin.cjs +0 -99
  98. package/src/lib/components/TelegramAutoLogin/TelegramAutoLogin.d.ts +0 -1
  99. package/src/lib/components/TelegramAutoLogin/TelegramAutoLogin.js +0 -95
  100. package/src/lib/components/TelegramAutoLogin/index.d.ts +0 -1
  101. package/src/lib/utils/constants/sessionStorage.cjs +0 -12
  102. package/src/lib/utils/constants/sessionStorage.js +0 -7
@@ -22,6 +22,72 @@ import { setUser } from '../../../../store/state/user/user.js';
22
22
  import { revokeSession } from '../../../../data/api/session/session.js';
23
23
  import '../../../../locale/locale.js';
24
24
  import { dynamicEvents } from '../../../../events/dynamicEvents.js';
25
+ import { useInternalDynamicEvents } from '../../../../utils/hooks/events/useDynamicEvents/useDynamicEvents.js';
26
+ import '../../DynamicContext.js';
27
+ import '../../../CaptchaContext/CaptchaContext.js';
28
+ import '../../../ErrorContext/ErrorContext.js';
29
+ import '../../../AccessDeniedContext/AccessDeniedContext.js';
30
+ import '../../../AccountExistsContext/AccountExistsContext.js';
31
+ import '../../../UserWalletsContext/UserWalletsContext.js';
32
+ import '../../../VerificationContext/VerificationContext.js';
33
+ import 'react-dom';
34
+ import '../../../WalletContext/WalletContext.js';
35
+ import '../../../../utils/hooks/useEmbeddedWallet/useSecureEnclaveEmbeddedWallet/constants.js';
36
+ import '../../../ThemeContext/ThemeContext.js';
37
+ import '../../../../utils/hooks/useUserUpdateRequest/useUpdateUser/userFieldsSchema.js';
38
+ import '@dynamic-labs/types';
39
+ import '../../../LoadingContext/LoadingContext.js';
40
+ import 'yup';
41
+ import '../../../MockContext/MockContext.js';
42
+ import '../../../../views/CollectUserDataView/useFields.js';
43
+ import '../../../FieldsStateContext/FieldsStateContext.js';
44
+ import '../../../UserFieldEditorContext/UserFieldEditorContext.js';
45
+ import '@dynamic-labs/rpc-providers';
46
+ import '../../../../store/state/environmentId.js';
47
+ import '../../../../store/state/walletConnectorOptions.js';
48
+ import 'react-i18next';
49
+ import '../../../../components/Accordion/components/AccordionItem/AccordionItem.js';
50
+ import '../../../../components/Alert/Alert.js';
51
+ import '../../../../components/ShadowDOM/ShadowDOM.js';
52
+ import '../../../../components/IconButton/IconButton.js';
53
+ import '../../../../components/InlineWidget/InlineWidget.js';
54
+ import '../../../../components/Input/Input.js';
55
+ import '../../../../components/IsBrowser/IsBrowser.js';
56
+ import '../../../../components/MenuList/Dropdown/Dropdown.js';
57
+ import '../../../../components/Transition/ZoomTransition/ZoomTransition.js';
58
+ import '../../../../components/Transition/SlideInUpTransition/SlideInUpTransition.js';
59
+ import '../../../../components/Transition/OpacityTransition/OpacityTransition.js';
60
+ import '../../../../components/OverlayCard/OverlayCardTarget/OverlayCardTarget.js';
61
+ import '../../../../components/PasskeyCreatedSuccessBanner/PasskeyCreatedSuccessBanner.js';
62
+ import '../../../../components/Popper/Popper/Popper.js';
63
+ import '../../../../components/Popper/PopperContext/PopperContext.js';
64
+ import 'react-focus-lock';
65
+ import 'qrcode';
66
+ import 'formik';
67
+ import '../../../FooterAnimationContext/index.js';
68
+ import '../../../WalletGroupContext/WalletGroupContext.js';
69
+ import '../../../SocialRedirectContext/SocialRedirectContext.js';
70
+ import '../../../../widgets/DynamicBridgeWidget/views/WalletsView/components/SecondaryWallets/SecondaryWallets.js';
71
+ import '@hcaptcha/react-hcaptcha';
72
+ import '../../../../widgets/DynamicWidget/context/DynamicWidgetContext.js';
73
+ import '../../../IpConfigurationContext/IpConfigurationContext.js';
74
+ import '../../../PasskeyContext/PasskeyContext.js';
75
+ import '../../../../store/state/sendBalances.js';
76
+ import '../../../../widgets/DynamicWidget/components/DynamicWidgetHeader/DynamicWidgetHeader.js';
77
+ import '../../../../views/TransactionConfirmationView/helpers/transactionErrorMessage.js';
78
+ import '../../../../widgets/DynamicWidget/views/ManagePasskeysWidgetView/PasskeyCard/PasskeyCard.js';
79
+ import '../../../../../polyfills.js';
80
+ import '../../../ErrorBoundary/ErrorBoundaryBase.js';
81
+ import '../../../ErrorBoundary/ErrorBoundaryContext.js';
82
+ import '../../../../widgets/DynamicBridgeWidget/context/DynamicBridgeWidgetContext/DynamicBridgeWidgetContext.js';
83
+ import '../../../../widgets/DynamicWidget/components/DynamicWidgetCard/DynamicWidgetCard.js';
84
+ import '../../../WidgetRegistry/WidgetRegistryContextProvider.js';
85
+ import '../../../FundingContext/FundingContext.js';
86
+ import '../../../SendBalanceContext/SendBalanceContext.js';
87
+ import '../../../ConnectWithOtpContext/ConnectWithOtpContext.js';
88
+ import '../../../ConnectWithOtpContext/constants.js';
89
+ import '../../../ReinitializeContext/ReinitializeContextProvider.js';
90
+ import '../../../../store/state/tokenBalances.js';
25
91
 
26
92
  const useHandleLogout = (params) => {
27
93
  const paramsRef = useRef(params);
@@ -83,6 +149,8 @@ const useHandleLogout = (params) => {
83
149
  StorageService.events.off('parseFailure', logout);
84
150
  };
85
151
  }, [logout]);
152
+ /** Allows triggering a logout from anywhere in the code */
153
+ useInternalDynamicEvents('triggerLogout', () => logout());
86
154
  return logout;
87
155
  };
88
156
 
@@ -12,6 +12,8 @@ var isSSR = require('../../../../shared/utils/functions/isSSR/isSSR.cjs');
12
12
  * @param storagePostfix - The postfix for the storage services.
13
13
  */
14
14
  const useRegisterStorageService = ({ storagePostfix, }) => {
15
+ if (!isSSR.isSSR() && utils.PlatformService.isNativeMobile)
16
+ return;
15
17
  const storageForSSR = {
16
18
  clear: () => undefined,
17
19
  getItem: () => null,
@@ -1,5 +1,5 @@
1
1
  'use client'
2
- import { StorageService, createStorageService } from '@dynamic-labs/utils';
2
+ import { PlatformService, StorageService, createStorageService } from '@dynamic-labs/utils';
3
3
  import { isSSR } from '../../../../shared/utils/functions/isSSR/isSSR.js';
4
4
 
5
5
  /**
@@ -8,6 +8,8 @@ import { isSSR } from '../../../../shared/utils/functions/isSSR/isSSR.js';
8
8
  * @param storagePostfix - The postfix for the storage services.
9
9
  */
10
10
  const useRegisterStorageService = ({ storagePostfix, }) => {
11
+ if (!isSSR() && PlatformService.isNativeMobile)
12
+ return;
11
13
  const storageForSSR = {
12
14
  clear: () => undefined,
13
15
  getItem: () => null,
@@ -34,6 +34,7 @@ var useVerifyWallet = require('../../utils/hooks/useVerifyWallet/useVerifyWallet
34
34
  require('../VerificationContext/VerificationContext.cjs');
35
35
  require('react-dom');
36
36
  require('../WalletContext/WalletContext.cjs');
37
+ require('../UserWalletsContext/UserWalletsContext.cjs');
37
38
  require('../../utils/hooks/useEmbeddedWallet/useSecureEnclaveEmbeddedWallet/constants.cjs');
38
39
  require('../ThemeContext/ThemeContext.cjs');
39
40
  require('../../utils/hooks/useUserUpdateRequest/useUpdateUser/userFieldsSchema.cjs');
@@ -49,7 +50,6 @@ require('../UserFieldEditorContext/UserFieldEditorContext.cjs');
49
50
  require('@dynamic-labs/rpc-providers');
50
51
  require('../../store/state/environmentId.cjs');
51
52
  require('../../store/state/walletConnectorOptions.cjs');
52
- require('../UserWalletsContext/UserWalletsContext.cjs');
53
53
  require('react-i18next');
54
54
  require('../../components/Accordion/components/AccordionItem/AccordionItem.cjs');
55
55
  require('../../components/Alert/Alert.cjs');
@@ -30,6 +30,7 @@ import { useVerifyWallet } from '../../utils/hooks/useVerifyWallet/useVerifyWall
30
30
  import '../VerificationContext/VerificationContext.js';
31
31
  import 'react-dom';
32
32
  import '../WalletContext/WalletContext.js';
33
+ import '../UserWalletsContext/UserWalletsContext.js';
33
34
  import '../../utils/hooks/useEmbeddedWallet/useSecureEnclaveEmbeddedWallet/constants.js';
34
35
  import '../ThemeContext/ThemeContext.js';
35
36
  import '../../utils/hooks/useUserUpdateRequest/useUpdateUser/userFieldsSchema.js';
@@ -45,7 +46,6 @@ import '../UserFieldEditorContext/UserFieldEditorContext.js';
45
46
  import '@dynamic-labs/rpc-providers';
46
47
  import '../../store/state/environmentId.js';
47
48
  import '../../store/state/walletConnectorOptions.js';
48
- import '../UserWalletsContext/UserWalletsContext.js';
49
49
  import 'react-i18next';
50
50
  import '../../components/Accordion/components/AccordionItem/AccordionItem.js';
51
51
  import '../../components/Alert/Alert.js';
@@ -34,6 +34,7 @@ require('../VerificationContext/VerificationContext.cjs');
34
34
  require('react-dom');
35
35
  require('../../events/dynamicEvents.cjs');
36
36
  require('../WalletContext/WalletContext.cjs');
37
+ require('../UserWalletsContext/UserWalletsContext.cjs');
37
38
  require('../../utils/hooks/useEmbeddedWallet/useSecureEnclaveEmbeddedWallet/constants.cjs');
38
39
  require('../ThemeContext/ThemeContext.cjs');
39
40
  require('../../utils/hooks/useUserUpdateRequest/useUpdateUser/userFieldsSchema.cjs');
@@ -49,7 +50,6 @@ require('../UserFieldEditorContext/UserFieldEditorContext.cjs');
49
50
  require('@dynamic-labs/rpc-providers');
50
51
  require('../../store/state/environmentId.cjs');
51
52
  require('../../store/state/walletConnectorOptions.cjs');
52
- require('../UserWalletsContext/UserWalletsContext.cjs');
53
53
  require('react-i18next');
54
54
  require('../../components/Accordion/components/AccordionItem/AccordionItem.cjs');
55
55
  require('../../components/Alert/Alert.cjs');
@@ -30,6 +30,7 @@ import '../VerificationContext/VerificationContext.js';
30
30
  import 'react-dom';
31
31
  import '../../events/dynamicEvents.js';
32
32
  import '../WalletContext/WalletContext.js';
33
+ import '../UserWalletsContext/UserWalletsContext.js';
33
34
  import '../../utils/hooks/useEmbeddedWallet/useSecureEnclaveEmbeddedWallet/constants.js';
34
35
  import '../ThemeContext/ThemeContext.js';
35
36
  import '../../utils/hooks/useUserUpdateRequest/useUpdateUser/userFieldsSchema.js';
@@ -45,7 +46,6 @@ import '../UserFieldEditorContext/UserFieldEditorContext.js';
45
46
  import '@dynamic-labs/rpc-providers';
46
47
  import '../../store/state/environmentId.js';
47
48
  import '../../store/state/walletConnectorOptions.js';
48
- import '../UserWalletsContext/UserWalletsContext.js';
49
49
  import 'react-i18next';
50
50
  import '../../components/Accordion/components/AccordionItem/AccordionItem.js';
51
51
  import '../../components/Alert/Alert.js';
@@ -1,6 +1,6 @@
1
1
  import { FC } from 'react';
2
2
  import { viewToComponentMap } from '../../../views/viewToComponentMap';
3
- export type ViewType = 'access-blocked' | 'select-hardware-wallet' | 'captcha' | 'chainalysis-blocked-wallet' | 'collect-user-data' | 'collect-user-data-login-no-wallet' | 'login-with-email-or-wallet-full-wallet-list' | 'login-with-email-or-wallet' | 'login-with-wallet-only' | 'login-with-email-verification' | 'login-with-sms-verification' | 'network-not-supported' | 'network-not-supported-manual' | 'no-access' | 'no-qr-not-installed' | 'pending-connect' | 'pending-signature-without-back-button' | 'pending-signature' | 'qr-code' | 'verify-email' | 'verify-sms' | 'wallet-connect-mobile-wallets-list' | 'wallet-list' | 'sandbox-maximum-threshold-reached' | 'multi-wallet-wallet-list' | 'wallet-sign' | 'wallet-used' | 'wallet-group' | 'select-wallet-in-wallet-group' | 'wait-for-email-confirmation-view' | 'email-wallet-otp-verification-view' | 'social-redirect-view' | 'wallet-locked-view' | 'social-wrong-account' | 'gate-blocked-wallet' | 'bridge-welcome' | 'bridge-summary' | 'bridge-next-wallet-connection' | 'account-exists' | 'merge-user-accounts' | 'merge-user-accounts-conflicts' | 'merge-user-accounts-with-same-email' | 'mfa-choose-device' | 'mfa-recovery' | 'mfa-secure-device' | 'mfa-secure-device-help' | 'mfa-verification' | 'mfa-display-backup-codes' | 'wallet-cannot-be-transferred' | 'passkey-intro' | 'passkey-recovery-add-email' | 'global-wallet-confirm' | 'global-wallet-info' | 'passkey-recovery-start' | 'passkey-recovery-bundle' | 'passkey-recovery-complete' | 'passkey-new-domain-detected' | 'embedded-reveal-view' | 'embedded-reveal-account-view' | 'embedded-wallet-auth-choice' | 'rename-passkey' | 'wallet-redirect-view' | 'create-password-view' | 'wallet-claim-intro' | 'farcaster-connect-view';
3
+ export type ViewType = 'access-blocked' | 'select-hardware-wallet' | 'captcha' | 'chainalysis-blocked-wallet' | 'collect-user-data' | 'collect-user-data-login-no-wallet' | 'login-with-email-or-wallet-full-wallet-list' | 'login-with-email-or-wallet' | 'login-with-wallet-only' | 'login-with-email-verification' | 'login-with-sms-verification' | 'network-not-supported' | 'network-not-supported-manual' | 'no-access' | 'no-qr-not-installed' | 'pending-connect' | 'pending-signature-without-back-button' | 'pending-signature' | 'qr-code' | 'verify-email' | 'verify-sms' | 'wallet-connect-mobile-wallets-list' | 'wallet-list' | 'sandbox-maximum-threshold-reached' | 'multi-wallet-wallet-list' | 'wallet-sign' | 'wallet-used' | 'wallet-group' | 'select-wallet-in-wallet-group' | 'wait-for-email-confirmation-view' | 'email-wallet-otp-verification-view' | 'social-redirect-view' | 'wallet-locked-view' | 'social-wrong-account' | 'gate-blocked-wallet' | 'bridge-welcome' | 'bridge-summary' | 'bridge-next-wallet-connection' | 'account-exists' | 'merge-user-accounts' | 'merge-user-accounts-conflicts' | 'merge-user-accounts-with-same-email' | 'mfa-choose-device' | 'mfa-recovery' | 'mfa-secure-device' | 'mfa-secure-device-help' | 'mfa-verification' | 'mfa-display-backup-codes' | 'wallet-cannot-be-transferred' | 'passkey-intro' | 'passkey-recovery-add-email' | 'global-wallet-confirm' | 'global-wallet-malicious' | 'global-wallet-info' | 'passkey-recovery-start' | 'passkey-recovery-bundle' | 'passkey-recovery-complete' | 'passkey-new-domain-detected' | 'embedded-reveal-view' | 'embedded-reveal-account-view' | 'embedded-wallet-auth-choice' | 'rename-passkey' | 'wallet-redirect-view' | 'create-password-view' | 'wallet-claim-intro' | 'farcaster-connect-view';
4
4
  export type ViewMapConstraint = Record<ViewType, FC<any>>;
5
5
  type ComponentProps<T extends FC<any>> = T extends FC<infer P> ? P : never;
6
6
  export type ViewMap = typeof viewToComponentMap;
@@ -196,18 +196,25 @@ const claimEmbeddedWallet = (_l) => _tslib.__awaiter(void 0, [_l], void 0, funct
196
196
  throw e;
197
197
  }
198
198
  });
199
- const registerSessionKey = (_p) => _tslib.__awaiter(void 0, [_p], void 0, function* ({ environmentId, publicKey, }) {
199
+ const registerSessionKey = (_p) => _tslib.__awaiter(void 0, [_p], void 0, function* ({ environmentId, publicKey, prevSessionKeySignature, }) {
200
+ let response;
200
201
  try {
201
- yield api.sdkApi().registerSessionKey({
202
+ response = yield api.sdkApi().registerSessionKey({
202
203
  environmentId,
203
- registerSessionKeyRequest: { publicKey },
204
+ registerSessionKeyRequest: { prevSessionKeySignature, publicKey },
204
205
  });
205
- return publicKey;
206
206
  }
207
207
  catch (e) {
208
208
  logger.logger.error('Error registering session key', e);
209
- return undefined;
209
+ if ((e === null || e === void 0 ? void 0 : e.status) === 422) {
210
+ const errorJson = yield e.json();
211
+ if (errorJson.code === sdkApiCore.UnprocessableEntityErrorCode.InvalidSessionPublicKey) {
212
+ throw new utils.InvalidEmbeddedWalletSessionKeyError(errorJson.error);
213
+ }
214
+ }
215
+ throw e;
210
216
  }
217
+ return response;
211
218
  });
212
219
  const getCreateEmbeddedWalletAccountRequest = (_q) => _tslib.__awaiter(void 0, [_q], void 0, function* ({ environmentId, chain, }) {
213
220
  try {
@@ -1,4 +1,4 @@
1
- import { EmbeddedWalletAuthType, EmbeddedWalletChainEnum, ExportEmbeddedWalletResponse, VerifyResponse } from '@dynamic-labs/sdk-api-core';
1
+ import { EmbeddedWalletAuthType, EmbeddedWalletChainEnum, ExportEmbeddedWalletResponse, RegisterEmbeddedWalletSessionKeyResponse, VerifyResponse } from '@dynamic-labs/sdk-api-core';
2
2
  import { UserProfile } from '../../../..';
3
3
  import { CompletePasskeyRecoveryProps, CreateTurnkeyEmbeddedWalletProps, GetUserPasskeysProps, InitPasskeyRecoveryProps, UpdatePasskeyRecoveryEmailProps, UpdateUserPasskeysProps } from './types';
4
4
  export declare const createTurnkeyEmbeddedWallet: ({ attestation, challenge, environmentId, chains, passkeyAlias, }: CreateTurnkeyEmbeddedWalletProps) => Promise<UserProfile | undefined>;
@@ -28,10 +28,11 @@ export declare const claimEmbeddedWallet: ({ environmentId, walletId, }: {
28
28
  }) => Promise<VerifyResponse | {
29
29
  code: string;
30
30
  }>;
31
- export declare const registerSessionKey: ({ environmentId, publicKey, }: {
31
+ export declare const registerSessionKey: ({ environmentId, publicKey, prevSessionKeySignature, }: {
32
32
  environmentId: string;
33
33
  publicKey: string;
34
- }) => Promise<string | undefined>;
34
+ prevSessionKeySignature?: string;
35
+ }) => Promise<RegisterEmbeddedWalletSessionKeyResponse>;
35
36
  export declare const getCreateEmbeddedWalletAccountRequest: ({ environmentId, chain, }: {
36
37
  environmentId: string;
37
38
  chain: EmbeddedWalletChainEnum;
@@ -1,7 +1,7 @@
1
1
  'use client'
2
2
  import { __awaiter } from '../../../../../_virtual/_tslib.js';
3
- import { EmbeddedWalletProviderEnum, EmbeddedWalletChainEnum } from '@dynamic-labs/sdk-api-core';
4
- import { DynamicError } from '@dynamic-labs/utils';
3
+ import { UnprocessableEntityErrorCode, EmbeddedWalletProviderEnum, EmbeddedWalletChainEnum } from '@dynamic-labs/sdk-api-core';
4
+ import { DynamicError, InvalidEmbeddedWalletSessionKeyError } from '@dynamic-labs/utils';
5
5
  import { logger } from '../../../shared/logger.js';
6
6
  import '@dynamic-labs/iconic';
7
7
  import '@dynamic-labs/wallet-connector-core';
@@ -192,18 +192,25 @@ const claimEmbeddedWallet = (_l) => __awaiter(void 0, [_l], void 0, function* ({
192
192
  throw e;
193
193
  }
194
194
  });
195
- const registerSessionKey = (_p) => __awaiter(void 0, [_p], void 0, function* ({ environmentId, publicKey, }) {
195
+ const registerSessionKey = (_p) => __awaiter(void 0, [_p], void 0, function* ({ environmentId, publicKey, prevSessionKeySignature, }) {
196
+ let response;
196
197
  try {
197
- yield sdkApi().registerSessionKey({
198
+ response = yield sdkApi().registerSessionKey({
198
199
  environmentId,
199
- registerSessionKeyRequest: { publicKey },
200
+ registerSessionKeyRequest: { prevSessionKeySignature, publicKey },
200
201
  });
201
- return publicKey;
202
202
  }
203
203
  catch (e) {
204
204
  logger.error('Error registering session key', e);
205
- return undefined;
205
+ if ((e === null || e === void 0 ? void 0 : e.status) === 422) {
206
+ const errorJson = yield e.json();
207
+ if (errorJson.code === UnprocessableEntityErrorCode.InvalidSessionPublicKey) {
208
+ throw new InvalidEmbeddedWalletSessionKeyError(errorJson.error);
209
+ }
210
+ }
211
+ throw e;
206
212
  }
213
+ return response;
207
214
  });
208
215
  const getCreateEmbeddedWalletAccountRequest = (_q) => __awaiter(void 0, [_q], void 0, function* ({ environmentId, chain, }) {
209
216
  try {
@@ -0,0 +1,23 @@
1
+ 'use client'
2
+ 'use strict';
3
+
4
+ Object.defineProperty(exports, '__esModule', { value: true });
5
+
6
+ var _tslib = require('../../../../../_virtual/_tslib.cjs');
7
+ var api = require('../api.cjs');
8
+
9
+ const isMaliciousUrl = (_a) => _tslib.__awaiter(void 0, [_a], void 0, function* ({ environmentId, url, }) {
10
+ try {
11
+ const request = {
12
+ environmentId,
13
+ scanWebsiteUrlRequest: { url },
14
+ };
15
+ const data = yield api.sdkApi().scanUrl(request);
16
+ return data.isMalicious;
17
+ }
18
+ catch (error) {
19
+ return undefined;
20
+ }
21
+ });
22
+
23
+ exports.isMaliciousUrl = isMaliciousUrl;
@@ -0,0 +1,19 @@
1
+ 'use client'
2
+ import { __awaiter } from '../../../../../_virtual/_tslib.js';
3
+ import { sdkApi } from '../api.js';
4
+
5
+ const isMaliciousUrl = (_a) => __awaiter(void 0, [_a], void 0, function* ({ environmentId, url, }) {
6
+ try {
7
+ const request = {
8
+ environmentId,
9
+ scanWebsiteUrlRequest: { url },
10
+ };
11
+ const data = yield sdkApi().scanUrl(request);
12
+ return data.isMalicious;
13
+ }
14
+ catch (error) {
15
+ return undefined;
16
+ }
17
+ });
18
+
19
+ export { isMaliciousUrl };
@@ -33,6 +33,8 @@ export type AuthEvents = {
33
33
  /** Informs an auth attempt initialized, and provides insight into which auth option it is */
34
34
  authInit: (method: AuthEventPayload) => void;
35
35
  logout: () => void;
36
+ /** This event is used to trigger logout to be called, DO NOT listen to it. Listen to "logout" instead */
37
+ triggerLogout: () => void;
36
38
  /**
37
39
  * DO NOT EXPOSE OR RELY ON THIS EVENT.
38
40
  * This indicates we should perform session validation.
@@ -908,6 +908,24 @@ const translation = {
908
908
  },
909
909
  learn_more: 'Learn more about global wallets',
910
910
  },
911
+ malicious_site: {
912
+ certain: {
913
+ title: 'Malicious app detected!',
914
+ subtitle_header: 'Risk of losing funds',
915
+ subtitle_text:
916
+ 'The site is known to exploit and or take assets from connected wallets.',
917
+ go_back: 'Cancel',
918
+ proceed: 'Proceed',
919
+ },
920
+ unknown: {
921
+ title: 'Site verification did not run.',
922
+ subtitle_header: 'Double check the app',
923
+ subtitle_text:
924
+ 'We were unable to verify the vailidity of the app at this time.',
925
+ go_back: 'Cancel',
926
+ proceed: 'Proceed',
927
+ },
928
+ },
911
929
  },
912
930
  */
913
931
  global_wallet: {
@@ -939,6 +957,22 @@ const translation = {
939
957
  },
940
958
  learn_more: 'Learn more about global wallets',
941
959
  },
960
+ malicious_site: {
961
+ certain: {
962
+ title: 'Malicious app detected!',
963
+ subtitle_header: 'Risk of losing funds',
964
+ subtitle_text: 'The site is known to exploit and or take assets from connected wallets.',
965
+ go_back: 'Cancel',
966
+ proceed: 'Proceed',
967
+ },
968
+ unknown: {
969
+ title: 'Site verification did not run.',
970
+ subtitle_header: 'Double check the app',
971
+ subtitle_text: 'We were unable to verify the vailidity of the app at this time.',
972
+ go_back: 'Cancel',
973
+ proceed: 'Proceed',
974
+ },
975
+ },
942
976
  },
943
977
  /**
944
978
  * @description copy keys for mfa management view
@@ -904,6 +904,24 @@ export declare const translation: {
904
904
  },
905
905
  learn_more: 'Learn more about global wallets',
906
906
  },
907
+ malicious_site: {
908
+ certain: {
909
+ title: 'Malicious app detected!',
910
+ subtitle_header: 'Risk of losing funds',
911
+ subtitle_text:
912
+ 'The site is known to exploit and or take assets from connected wallets.',
913
+ go_back: 'Cancel',
914
+ proceed: 'Proceed',
915
+ },
916
+ unknown: {
917
+ title: 'Site verification did not run.',
918
+ subtitle_header: 'Double check the app',
919
+ subtitle_text:
920
+ 'We were unable to verify the vailidity of the app at this time.',
921
+ go_back: 'Cancel',
922
+ proceed: 'Proceed',
923
+ },
924
+ },
907
925
  },
908
926
  */
909
927
  global_wallet: {
@@ -935,6 +953,22 @@ export declare const translation: {
935
953
  };
936
954
  learn_more: string;
937
955
  };
956
+ malicious_site: {
957
+ certain: {
958
+ title: string;
959
+ subtitle_header: string;
960
+ subtitle_text: string;
961
+ go_back: string;
962
+ proceed: string;
963
+ };
964
+ unknown: {
965
+ title: string;
966
+ subtitle_header: string;
967
+ subtitle_text: string;
968
+ go_back: string;
969
+ proceed: string;
970
+ };
971
+ };
938
972
  };
939
973
  /**
940
974
  * @description copy keys for mfa management view
@@ -904,6 +904,24 @@ const translation = {
904
904
  },
905
905
  learn_more: 'Learn more about global wallets',
906
906
  },
907
+ malicious_site: {
908
+ certain: {
909
+ title: 'Malicious app detected!',
910
+ subtitle_header: 'Risk of losing funds',
911
+ subtitle_text:
912
+ 'The site is known to exploit and or take assets from connected wallets.',
913
+ go_back: 'Cancel',
914
+ proceed: 'Proceed',
915
+ },
916
+ unknown: {
917
+ title: 'Site verification did not run.',
918
+ subtitle_header: 'Double check the app',
919
+ subtitle_text:
920
+ 'We were unable to verify the vailidity of the app at this time.',
921
+ go_back: 'Cancel',
922
+ proceed: 'Proceed',
923
+ },
924
+ },
907
925
  },
908
926
  */
909
927
  global_wallet: {
@@ -935,6 +953,22 @@ const translation = {
935
953
  },
936
954
  learn_more: 'Learn more about global wallets',
937
955
  },
956
+ malicious_site: {
957
+ certain: {
958
+ title: 'Malicious app detected!',
959
+ subtitle_header: 'Risk of losing funds',
960
+ subtitle_text: 'The site is known to exploit and or take assets from connected wallets.',
961
+ go_back: 'Cancel',
962
+ proceed: 'Proceed',
963
+ },
964
+ unknown: {
965
+ title: 'Site verification did not run.',
966
+ subtitle_header: 'Double check the app',
967
+ subtitle_text: 'We were unable to verify the vailidity of the app at this time.',
968
+ go_back: 'Cancel',
969
+ proceed: 'Proceed',
970
+ },
971
+ },
938
972
  },
939
973
  /**
940
974
  * @description copy keys for mfa management view
@@ -0,0 +1,54 @@
1
+ 'use client'
2
+ 'use strict';
3
+
4
+ Object.defineProperty(exports, '__esModule', { value: true });
5
+
6
+ var React = require('react');
7
+
8
+ function _interopNamespace(e) {
9
+ if (e && e.__esModule) return e;
10
+ var n = Object.create(null);
11
+ if (e) {
12
+ Object.keys(e).forEach(function (k) {
13
+ if (k !== 'default') {
14
+ var d = Object.getOwnPropertyDescriptor(e, k);
15
+ Object.defineProperty(n, k, d.get ? d : {
16
+ enumerable: true,
17
+ get: function () { return e[k]; }
18
+ });
19
+ }
20
+ });
21
+ }
22
+ n["default"] = e;
23
+ return Object.freeze(n);
24
+ }
25
+
26
+ var React__namespace = /*#__PURE__*/_interopNamespace(React);
27
+
28
+ var _path;
29
+ var _excluded = ["title", "titleId"];
30
+ function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
31
+ function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
32
+ function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
33
+ var SvgCautionTriangle = function SvgCautionTriangle(_ref) {
34
+ var title = _ref.title,
35
+ titleId = _ref.titleId,
36
+ props = _objectWithoutProperties(_ref, _excluded);
37
+ return /*#__PURE__*/React__namespace.createElement("svg", _extends({
38
+ width: 17,
39
+ height: 16,
40
+ viewBox: "0 0 17 16",
41
+ fill: "none",
42
+ xmlns: "http://www.w3.org/2000/svg",
43
+ "aria-labelledby": titleId
44
+ }, props), title ? /*#__PURE__*/React__namespace.createElement("title", {
45
+ id: titleId
46
+ }, title) : null, _path || (_path = /*#__PURE__*/React__namespace.createElement("path", {
47
+ fillRule: "evenodd",
48
+ clipRule: "evenodd",
49
+ d: "M6.335 1.917c.962-1.667 3.368-1.667 4.33 0l5.774 10c.962 1.666-.241 3.75-2.166 3.75H2.726c-1.924 0-3.127-2.084-2.165-3.75l5.774-10Zm2.887.833a.833.833 0 0 0-1.444 0l-5.773 10A.833.833 0 0 0 2.726 14h11.547a.833.833 0 0 0 .722-1.25l-5.773-10ZM8.5 5.667c.46 0 .833.373.833.833v1.667a.833.833 0 0 1-1.666 0V6.5c0-.46.373-.833.833-.833ZM7.667 11.5c0-.46.373-.833.833-.833h.008a.833.833 0 1 1 0 1.666H8.5a.833.833 0 0 1-.833-.833Z",
50
+ fill: "#DD8500"
51
+ })));
52
+ };
53
+
54
+ exports.ReactComponent = SvgCautionTriangle;
@@ -0,0 +1,30 @@
1
+ 'use client'
2
+ import * as React from 'react';
3
+
4
+ var _path;
5
+ var _excluded = ["title", "titleId"];
6
+ function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
7
+ function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
8
+ function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
9
+ var SvgCautionTriangle = function SvgCautionTriangle(_ref) {
10
+ var title = _ref.title,
11
+ titleId = _ref.titleId,
12
+ props = _objectWithoutProperties(_ref, _excluded);
13
+ return /*#__PURE__*/React.createElement("svg", _extends({
14
+ width: 17,
15
+ height: 16,
16
+ viewBox: "0 0 17 16",
17
+ fill: "none",
18
+ xmlns: "http://www.w3.org/2000/svg",
19
+ "aria-labelledby": titleId
20
+ }, props), title ? /*#__PURE__*/React.createElement("title", {
21
+ id: titleId
22
+ }, title) : null, _path || (_path = /*#__PURE__*/React.createElement("path", {
23
+ fillRule: "evenodd",
24
+ clipRule: "evenodd",
25
+ d: "M6.335 1.917c.962-1.667 3.368-1.667 4.33 0l5.774 10c.962 1.666-.241 3.75-2.166 3.75H2.726c-1.924 0-3.127-2.084-2.165-3.75l5.774-10Zm2.887.833a.833.833 0 0 0-1.444 0l-5.773 10A.833.833 0 0 0 2.726 14h11.547a.833.833 0 0 0 .722-1.25l-5.773-10ZM8.5 5.667c.46 0 .833.373.833.833v1.667a.833.833 0 0 1-1.666 0V6.5c0-.46.373-.833.833-.833ZM7.667 11.5c0-.46.373-.833.833-.833h.008a.833.833 0 1 1 0 1.666H8.5a.833.833 0 0 1-.833-.833Z",
26
+ fill: "#DD8500"
27
+ })));
28
+ };
29
+
30
+ export { SvgCautionTriangle as ReactComponent };
@@ -0,0 +1,54 @@
1
+ 'use client'
2
+ 'use strict';
3
+
4
+ Object.defineProperty(exports, '__esModule', { value: true });
5
+
6
+ var React = require('react');
7
+
8
+ function _interopNamespace(e) {
9
+ if (e && e.__esModule) return e;
10
+ var n = Object.create(null);
11
+ if (e) {
12
+ Object.keys(e).forEach(function (k) {
13
+ if (k !== 'default') {
14
+ var d = Object.getOwnPropertyDescriptor(e, k);
15
+ Object.defineProperty(n, k, d.get ? d : {
16
+ enumerable: true,
17
+ get: function () { return e[k]; }
18
+ });
19
+ }
20
+ });
21
+ }
22
+ n["default"] = e;
23
+ return Object.freeze(n);
24
+ }
25
+
26
+ var React__namespace = /*#__PURE__*/_interopNamespace(React);
27
+
28
+ var _path;
29
+ var _excluded = ["title", "titleId"];
30
+ function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
31
+ function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
32
+ function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
33
+ var SvgExclamationCircle = function SvgExclamationCircle(_ref) {
34
+ var title = _ref.title,
35
+ titleId = _ref.titleId,
36
+ props = _objectWithoutProperties(_ref, _excluded);
37
+ return /*#__PURE__*/React__namespace.createElement("svg", _extends({
38
+ width: 17,
39
+ height: 18,
40
+ viewBox: "0 0 17 18",
41
+ fill: "none",
42
+ xmlns: "http://www.w3.org/2000/svg",
43
+ "aria-labelledby": titleId
44
+ }, props), title ? /*#__PURE__*/React__namespace.createElement("title", {
45
+ id: titleId
46
+ }, title) : null, _path || (_path = /*#__PURE__*/React__namespace.createElement("path", {
47
+ fillRule: "evenodd",
48
+ clipRule: "evenodd",
49
+ d: "M8.5 2.333a6.667 6.667 0 1 0 0 13.334 6.667 6.667 0 0 0 0-13.334ZM.167 9a8.333 8.333 0 1 1 16.666 0A8.333 8.333 0 0 1 .167 9ZM8.5 4.833c.46 0 .833.373.833.834V9a.833.833 0 1 1-1.667 0V5.667c0-.46.374-.834.834-.834Zm-.833 7.5c0-.46.373-.833.833-.833h.008a.833.833 0 0 1 0 1.667H8.5a.833.833 0 0 1-.833-.834Z",
50
+ fill: "#FF4646"
51
+ })));
52
+ };
53
+
54
+ exports.ReactComponent = SvgExclamationCircle;