@dynamic-labs/sdk-react-core 2.2.1 → 2.2.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.
Files changed (48) hide show
  1. package/CHANGELOG.md +18 -1
  2. package/package.cjs +1 -1
  3. package/package.js +1 -1
  4. package/package.json +13 -13
  5. package/src/lib/Main.cjs +1 -0
  6. package/src/lib/Main.js +1 -0
  7. package/src/lib/context/DynamicContext/DynamicContext.cjs +2 -1
  8. package/src/lib/context/DynamicContext/DynamicContext.js +2 -1
  9. package/src/lib/context/DynamicContext/hooks/useTieCallbacksToEvents/useTieCallbacksToEvents.cjs +16 -6
  10. package/src/lib/context/DynamicContext/hooks/useTieCallbacksToEvents/useTieCallbacksToEvents.js +16 -6
  11. package/src/lib/context/WidgetRegistry/WidgetRegistryContextProvider.cjs +77 -0
  12. package/src/lib/context/WidgetRegistry/WidgetRegistryContextProvider.d.ts +6 -0
  13. package/src/lib/context/WidgetRegistry/WidgetRegistryContextProvider.js +71 -0
  14. package/src/lib/context/WidgetRegistry/index.d.ts +1 -0
  15. package/src/lib/data/api/wallets/wallets.cjs +2 -1
  16. package/src/lib/data/api/wallets/wallets.d.ts +2 -1
  17. package/src/lib/data/api/wallets/wallets.js +2 -1
  18. package/src/lib/events/dynamicEvents.d.ts +2 -1
  19. package/src/lib/events/multiWallet.d.ts +5 -0
  20. package/src/lib/shared/types/dynamicEventsCallbacks.d.ts +5 -1
  21. package/src/lib/shared/utils/functions/isUserLinkingWallet/isUserLinkingWallet.d.ts +2 -0
  22. package/src/lib/styles/index.shadow.cjs +1 -1
  23. package/src/lib/styles/index.shadow.js +1 -1
  24. package/src/lib/utils/functions/index.d.ts +1 -0
  25. package/src/lib/utils/functions/isPhoneNumberProviderEnabled/index.d.ts +1 -0
  26. package/src/lib/utils/functions/logVerboseTroubleshootingMessage/index.d.ts +1 -0
  27. package/src/lib/utils/functions/logVerboseTroubleshootingMessage/logVerboseTroubleshootingMessage.cjs +27 -0
  28. package/src/lib/utils/functions/logVerboseTroubleshootingMessage/logVerboseTroubleshootingMessage.d.ts +1 -0
  29. package/src/lib/utils/functions/logVerboseTroubleshootingMessage/logVerboseTroubleshootingMessage.js +23 -0
  30. package/src/lib/utils/hooks/events/useDynamicEvents/useDynamicEvents.d.ts +1 -1
  31. package/src/lib/utils/hooks/useHandleUnlinkWallet/useHandleUnlinkWallet.cjs +3 -1
  32. package/src/lib/utils/hooks/useHandleUnlinkWallet/useHandleUnlinkWallet.js +3 -1
  33. package/src/lib/utils/hooks/useMergeUserAccounts/useMergeUserAccounts.cjs +6 -2
  34. package/src/lib/utils/hooks/useMergeUserAccounts/useMergeUserAccounts.js +6 -2
  35. package/src/lib/utils/hooks/useSocialAccounts/useSocialAccounts.cjs +2 -2
  36. package/src/lib/utils/hooks/useSocialAccounts/useSocialAccounts.js +2 -2
  37. package/src/lib/utils/hooks/useWalletConnectors/useWalletConnectors.cjs +7 -6
  38. package/src/lib/utils/hooks/useWalletConnectors/useWalletConnectors.js +7 -6
  39. package/src/lib/utils/hooks/useWalletEventListeners/useWalletEventListeners.cjs +44 -27
  40. package/src/lib/utils/hooks/useWalletEventListeners/useWalletEventListeners.js +45 -28
  41. package/src/lib/views/MergeUserAccountsView/MergeUserAccountsView.cjs +4 -14
  42. package/src/lib/views/MergeUserAccountsView/MergeUserAccountsView.js +5 -15
  43. package/src/lib/widgets/DynamicMultiWalletPromptsWidget/DynamicMultiWalletPromptsWidget.cjs +5 -5
  44. package/src/lib/widgets/DynamicMultiWalletPromptsWidget/DynamicMultiWalletPromptsWidget.js +5 -5
  45. package/src/lib/widgets/DynamicWidget/components/DynamicUserProfile/DynamicUserProfile.cjs +4 -1
  46. package/src/lib/widgets/DynamicWidget/components/DynamicUserProfile/DynamicUserProfile.js +4 -1
  47. package/src/lib/widgets/DynamicWidget/prompts/PrimaryNotConnectedModal/PrimaryNotConnectedModal.cjs +1 -1
  48. package/src/lib/widgets/DynamicWidget/prompts/PrimaryNotConnectedModal/PrimaryNotConnectedModal.js +1 -1
package/CHANGELOG.md CHANGED
@@ -1,4 +1,21 @@
1
1
 
2
+ ### [2.2.3](https://github.com/dynamic-labs/DynamicAuth/compare/v2.2.2...v2.2.3) (2024-06-19)
3
+
4
+
5
+ ### Bug Fixes
6
+
7
+ * return userWallets connected state async ([#6080](https://github.com/dynamic-labs/DynamicAuth/issues/6080)) ([6ffa444](https://github.com/dynamic-labs/DynamicAuth/commit/6ffa444ad374d1923a07bbc12191455cb3a1d276))
8
+ * ensure multi wallet prompts widget will not overlay the merge accounts UI ([#6087](https://github.com/dynamic-labs/DynamicAuth/issues/6087)) ([582f44f](https://github.com/dynamic-labs/DynamicAuth/commit/582f44f48b4d93917c4b20e9e6b4bbbfe4e4f94f))
9
+ * stop querying okx for accounts while locked ([#6081](https://github.com/dynamic-labs/DynamicAuth/issues/6081)) ([3374e38](https://github.com/dynamic-labs/DynamicAuth/commit/3374e38e2006f795809233de5bc03904d106bd2d))
10
+ * update copy for primary wallet not connected modal ([#6070](https://github.com/dynamic-labs/DynamicAuth/issues/6070)) ([d0466e1](https://github.com/dynamic-labs/DynamicAuth/commit/d0466e19f386adcd0ed83e73f783cfe827e1b94d))
11
+
12
+ ### [2.2.2](https://github.com/dynamic-labs/DynamicAuth/compare/v2.2.1...v2.2.2) (2024-06-18)
13
+
14
+
15
+ ### Bug Fixes
16
+
17
+ * make phantom BTC account change requests idempotent ([#6062](https://github.com/dynamic-labs/DynamicAuth/issues/6062)) ([2308d32](https://github.com/dynamic-labs/DynamicAuth/commit/2308d32d18627f2673c8f4c9b5623a9c731e4752))
18
+
2
19
  ### [2.2.1](https://github.com/dynamic-labs/DynamicAuth/compare/v2.2.0...v2.2.1) (2024-06-17)
3
20
 
4
21
 
@@ -94,7 +111,7 @@
94
111
 
95
112
  - React Native - You can now build mobile-first onboarding experiences with the same Dynamic magic but for React Native, get started [here](https://docs.dynamic.xyz/react-native/introduction)
96
113
 
97
- - Cookie Authentication - Dynamic can now be configured to set a secure, HttpOnly cookie that can be used for authenticating with Dynamic’s backend. This will contain a minified version of our JWT token.
114
+ - Cookie Authentication - Dynamic can now be configured to set a secure, HttpOnly cookie that can be used for authenticating with Dynamic’s backend. This will contain a minified version of our JWT token.
98
115
 
99
116
 
100
117
  ## Improvements
package/package.cjs CHANGED
@@ -3,7 +3,7 @@
3
3
 
4
4
  Object.defineProperty(exports, '__esModule', { value: true });
5
5
 
6
- var version = "2.2.1";
6
+ var version = "2.2.3";
7
7
  var dependencies = {
8
8
  "@dynamic-labs/sdk-api-core": "0.0.460",
9
9
  "@hcaptcha/react-hcaptcha": "1.4.4",
package/package.js CHANGED
@@ -1,5 +1,5 @@
1
1
  'use client'
2
- var version = "2.2.1";
2
+ var version = "2.2.3";
3
3
  var dependencies = {
4
4
  "@dynamic-labs/sdk-api-core": "0.0.460",
5
5
  "@hcaptcha/react-hcaptcha": "1.4.4",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dynamic-labs/sdk-react-core",
3
- "version": "2.2.1",
3
+ "version": "2.2.3",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "git+https://github.com/dynamic-labs/dynamic-auth.git",
@@ -17,18 +17,18 @@
17
17
  "react-i18next": "13.5.0",
18
18
  "yup": "0.32.11",
19
19
  "react-international-phone": "4.2.5",
20
- "@dynamic-labs/iconic": "2.2.1",
21
- "@dynamic-labs/logger": "2.2.1",
22
- "@dynamic-labs/multi-wallet": "2.2.1",
23
- "@dynamic-labs/rpc-provider-ethereum": "2.2.1",
24
- "@dynamic-labs/rpc-provider-solana": "2.2.1",
25
- "@dynamic-labs/rpc-providers": "2.2.1",
26
- "@dynamic-labs/store": "2.2.1",
27
- "@dynamic-labs/types": "2.2.1",
28
- "@dynamic-labs/utils": "2.2.1",
29
- "@dynamic-labs/viem-utils": "2.2.1",
30
- "@dynamic-labs/wallet-book": "2.2.1",
31
- "@dynamic-labs/wallet-connector-core": "2.2.1",
20
+ "@dynamic-labs/iconic": "2.2.3",
21
+ "@dynamic-labs/logger": "2.2.3",
22
+ "@dynamic-labs/multi-wallet": "2.2.3",
23
+ "@dynamic-labs/rpc-provider-ethereum": "2.2.3",
24
+ "@dynamic-labs/rpc-provider-solana": "2.2.3",
25
+ "@dynamic-labs/rpc-providers": "2.2.3",
26
+ "@dynamic-labs/store": "2.2.3",
27
+ "@dynamic-labs/types": "2.2.3",
28
+ "@dynamic-labs/utils": "2.2.3",
29
+ "@dynamic-labs/viem-utils": "2.2.3",
30
+ "@dynamic-labs/wallet-book": "2.2.3",
31
+ "@dynamic-labs/wallet-connector-core": "2.2.3",
32
32
  "eventemitter3": "5.0.1"
33
33
  },
34
34
  "devDependencies": {
package/src/lib/Main.cjs CHANGED
@@ -84,6 +84,7 @@ var SocialRedirectContext = require('./context/SocialRedirectContext/SocialRedir
84
84
  require('./context/WalletGroupContext/WalletGroupContext.cjs');
85
85
  require('./widgets/DynamicWidget/components/DynamicWidgetHeader/DynamicWidgetHeader.cjs');
86
86
  require('./widgets/DynamicWidget/views/ManagePasskeysWidgetView/PasskeyCard/PasskeyCard.cjs');
87
+ require('./context/WidgetRegistry/WidgetRegistryContextProvider.cjs');
87
88
  require('./context/FundingContext/FundingContext.cjs');
88
89
  require('./views/WalletList/WalletList.cjs');
89
90
  require('./widgets/DynamicBridgeWidget/views/WalletsView/components/SecondaryWallets/SecondaryWallets.cjs');
package/src/lib/Main.js CHANGED
@@ -80,6 +80,7 @@ import { useSocialRedirectContext } from './context/SocialRedirectContext/Social
80
80
  import './context/WalletGroupContext/WalletGroupContext.js';
81
81
  import './widgets/DynamicWidget/components/DynamicWidgetHeader/DynamicWidgetHeader.js';
82
82
  import './widgets/DynamicWidget/views/ManagePasskeysWidgetView/PasskeyCard/PasskeyCard.js';
83
+ import './context/WidgetRegistry/WidgetRegistryContextProvider.js';
83
84
  import './context/FundingContext/FundingContext.js';
84
85
  import './views/WalletList/WalletList.js';
85
86
  import './widgets/DynamicBridgeWidget/views/WalletsView/components/SecondaryWallets/SecondaryWallets.js';
@@ -104,6 +104,7 @@ require('../../widgets/DynamicWidget/components/DynamicWidgetCard/DynamicWidgetC
104
104
  require('../../widgets/DynamicWidget/components/DynamicWidgetHeader/DynamicWidgetHeader.cjs');
105
105
  require('../../views/TransactionConfirmationView/helpers/transactionErrorMessage.cjs');
106
106
  require('../../widgets/DynamicWidget/views/ManagePasskeysWidgetView/PasskeyCard/PasskeyCard.cjs');
107
+ var WidgetRegistryContextProvider = require('../WidgetRegistry/WidgetRegistryContextProvider.cjs');
107
108
  var FundingWidget = require('../../widgets/FundingWidget/FundingWidget.cjs');
108
109
  var ConnectWithOtpProvider = require('../ConnectWithOtpContext/ConnectWithOtpProvider.cjs');
109
110
  require('../ConnectWithOtpContext/ConnectWithOtpContext.cjs');
@@ -707,7 +708,7 @@ const DynamicContextProvider = (props) => {
707
708
  logger.Logger.setEnvironmentId(props.settings.environmentId);
708
709
  logger.Logger.setEmitErrors(props.emitErrors);
709
710
  useParentDynamicContextGuard.useParentDynamicContextGuard();
710
- return (jsxRuntime.jsx(ErrorBoundary.ErrorBoundary, { children: jsxRuntime.jsx(ErrorContext.ErrorContextProvider, { children: jsxRuntime.jsx(UserWalletsContext.UserWalletsProvider, { children: jsxRuntime.jsx(FieldsStateContext.FieldsStateProvider, { children: jsxRuntime.jsx(IpConfigurationContext.IpConfigurationContextProvider, { children: jsxRuntime.jsx(MfaSettingsContext.MfaSettingsContextProvider, { children: jsxRuntime.jsx(InnerDynamicContextProvider, Object.assign({}, props)) }) }) }) }) }) }));
711
+ return (jsxRuntime.jsx(ErrorBoundary.ErrorBoundary, { children: jsxRuntime.jsx(ErrorContext.ErrorContextProvider, { children: jsxRuntime.jsx(UserWalletsContext.UserWalletsProvider, { children: jsxRuntime.jsx(FieldsStateContext.FieldsStateProvider, { children: jsxRuntime.jsx(IpConfigurationContext.IpConfigurationContextProvider, { children: jsxRuntime.jsx(MfaSettingsContext.MfaSettingsContextProvider, { children: jsxRuntime.jsx(WidgetRegistryContextProvider.WidgetRegistryContextProvider, { children: jsxRuntime.jsx(InnerDynamicContextProvider, Object.assign({}, props)) }) }) }) }) }) }) }));
711
712
  };
712
713
 
713
714
  exports.DynamicContext = DynamicContext;
@@ -100,6 +100,7 @@ import '../../widgets/DynamicWidget/components/DynamicWidgetCard/DynamicWidgetCa
100
100
  import '../../widgets/DynamicWidget/components/DynamicWidgetHeader/DynamicWidgetHeader.js';
101
101
  import '../../views/TransactionConfirmationView/helpers/transactionErrorMessage.js';
102
102
  import '../../widgets/DynamicWidget/views/ManagePasskeysWidgetView/PasskeyCard/PasskeyCard.js';
103
+ import { WidgetRegistryContextProvider } from '../WidgetRegistry/WidgetRegistryContextProvider.js';
103
104
  import { FundingWidget } from '../../widgets/FundingWidget/FundingWidget.js';
104
105
  import { ConnectWithOtpProvider } from '../ConnectWithOtpContext/ConnectWithOtpProvider.js';
105
106
  import '../ConnectWithOtpContext/ConnectWithOtpContext.js';
@@ -703,7 +704,7 @@ const DynamicContextProvider = (props) => {
703
704
  Logger.setEnvironmentId(props.settings.environmentId);
704
705
  Logger.setEmitErrors(props.emitErrors);
705
706
  useParentDynamicContextGuard();
706
- return (jsx(ErrorBoundary, { children: jsx(ErrorContextProvider, { children: jsx(UserWalletsProvider, { children: jsx(FieldsStateProvider, { children: jsx(IpConfigurationContextProvider, { children: jsx(MfaSettingsContextProvider, { children: jsx(InnerDynamicContextProvider, Object.assign({}, props)) }) }) }) }) }) }));
707
+ return (jsx(ErrorBoundary, { children: jsx(ErrorContextProvider, { children: jsx(UserWalletsProvider, { children: jsx(FieldsStateProvider, { children: jsx(IpConfigurationContextProvider, { children: jsx(MfaSettingsContextProvider, { children: jsx(WidgetRegistryContextProvider, { children: jsx(InnerDynamicContextProvider, Object.assign({}, props)) }) }) }) }) }) }) }));
707
708
  };
708
709
 
709
710
  export { DynamicContext, DynamicContextProvider, InnerDynamicContextProvider, PUBLIC_PROJECT_LIVE_ENVIRONMENT_ID };
@@ -3,22 +3,22 @@
3
3
 
4
4
  Object.defineProperty(exports, '__esModule', { value: true });
5
5
 
6
- var useDynamicEvents = require('../../../../utils/hooks/events/useDynamicEvents/useDynamicEvents.cjs');
7
- require('react');
8
- require('../../../../../../_virtual/_tslib.cjs');
9
- require('@dynamic-labs/utils');
10
- require('../../DynamicContext.cjs');
11
6
  require('@dynamic-labs/sdk-api-core');
12
- require('../../../../shared/logger.cjs');
7
+ var logger = require('../../../../shared/logger.cjs');
13
8
  require('@dynamic-labs/iconic');
14
9
  require('@dynamic-labs/wallet-connector-core');
15
10
  require('react/jsx-runtime');
16
11
  require('../../../ViewContext/ViewContext.cjs');
12
+ require('react');
17
13
  require('@dynamic-labs/wallet-book');
18
14
  require('../../../../utils/constants/colors.cjs');
19
15
  require('../../../../utils/constants/values.cjs');
20
16
  require('../../../../shared/utils/classes/storage/localStorage.cjs');
17
+ require('@dynamic-labs/utils');
21
18
  require('../../../../shared/consts/index.cjs');
19
+ var useDynamicEvents = require('../../../../utils/hooks/events/useDynamicEvents/useDynamicEvents.cjs');
20
+ require('../../../../../../_virtual/_tslib.cjs');
21
+ require('../../DynamicContext.cjs');
22
22
  require('../../../CaptchaContext/CaptchaContext.cjs');
23
23
  require('../../../ErrorContext/ErrorContext.cjs');
24
24
  require('@dynamic-labs/multi-wallet');
@@ -105,14 +105,22 @@ const useTieCallbacksToEvents = ({ clientCallbacks, user, setHasLoggedOut, }) =>
105
105
  useDynamicEvents.useInternalDynamicEvents('walletAdded', (wallet, userWallets) => {
106
106
  var _a;
107
107
  setHasLoggedOut(false);
108
+ logger.logger.debug('[walletAdded]', { userWallets, wallet });
108
109
  (_a = clientCallbacks === null || clientCallbacks === void 0 ? void 0 : clientCallbacks.onWalletAdded) === null || _a === void 0 ? void 0 : _a.call(clientCallbacks, { userWallets, wallet });
109
110
  });
110
111
  useDynamicEvents.useInternalDynamicEvents('walletRemoved', (wallet, userWallets) => {
111
112
  var _a;
113
+ logger.logger.debug('[walletRemoved]', { userWallets, wallet });
112
114
  (_a = clientCallbacks === null || clientCallbacks === void 0 ? void 0 : clientCallbacks.onWalletRemoved) === null || _a === void 0 ? void 0 : _a.call(clientCallbacks, { userWallets, wallet });
113
115
  });
114
116
  useDynamicEvents.useInternalDynamicEvents('embeddedWalletCreated', (_wallet, jwtVerifiedCredential, authToken, user) => {
115
117
  var _a;
118
+ logger.logger.debug('[embeddedWalletCreated]', {
119
+ _wallet,
120
+ authToken,
121
+ jwtVerifiedCredential,
122
+ user,
123
+ });
116
124
  (_a = clientCallbacks === null || clientCallbacks === void 0 ? void 0 : clientCallbacks.onEmbeddedWalletCreated) === null || _a === void 0 ? void 0 : _a.call(clientCallbacks, jwtVerifiedCredential, authToken, user);
117
125
  });
118
126
  useDynamicEvents.useInternalDynamicEvents('logout', () => {
@@ -121,10 +129,12 @@ const useTieCallbacksToEvents = ({ clientCallbacks, user, setHasLoggedOut, }) =>
121
129
  });
122
130
  useDynamicEvents.useInternalDynamicEvents('authFailure', (data, reason) => {
123
131
  var _a;
132
+ logger.logger.debug('[authFailure]', { data, reason });
124
133
  (_a = clientCallbacks === null || clientCallbacks === void 0 ? void 0 : clientCallbacks.onAuthFailure) === null || _a === void 0 ? void 0 : _a.call(clientCallbacks, data, reason);
125
134
  });
126
135
  useDynamicEvents.useInternalDynamicEvents('authInit', (data) => {
127
136
  var _a;
137
+ logger.logger.debug('[authInit]', { data });
128
138
  (_a = clientCallbacks === null || clientCallbacks === void 0 ? void 0 : clientCallbacks.onAuthInit) === null || _a === void 0 ? void 0 : _a.call(clientCallbacks, data);
129
139
  });
130
140
  };
@@ -1,20 +1,20 @@
1
1
  'use client'
2
- import { useInternalDynamicEvents } from '../../../../utils/hooks/events/useDynamicEvents/useDynamicEvents.js';
3
- import 'react';
4
- import '../../../../../../_virtual/_tslib.js';
5
- import '@dynamic-labs/utils';
6
- import '../../DynamicContext.js';
7
2
  import '@dynamic-labs/sdk-api-core';
8
- import '../../../../shared/logger.js';
3
+ import { logger } from '../../../../shared/logger.js';
9
4
  import '@dynamic-labs/iconic';
10
5
  import '@dynamic-labs/wallet-connector-core';
11
6
  import 'react/jsx-runtime';
12
7
  import '../../../ViewContext/ViewContext.js';
8
+ import 'react';
13
9
  import '@dynamic-labs/wallet-book';
14
10
  import '../../../../utils/constants/colors.js';
15
11
  import '../../../../utils/constants/values.js';
16
12
  import '../../../../shared/utils/classes/storage/localStorage.js';
13
+ import '@dynamic-labs/utils';
17
14
  import '../../../../shared/consts/index.js';
15
+ import { useInternalDynamicEvents } from '../../../../utils/hooks/events/useDynamicEvents/useDynamicEvents.js';
16
+ import '../../../../../../_virtual/_tslib.js';
17
+ import '../../DynamicContext.js';
18
18
  import '../../../CaptchaContext/CaptchaContext.js';
19
19
  import '../../../ErrorContext/ErrorContext.js';
20
20
  import '@dynamic-labs/multi-wallet';
@@ -101,14 +101,22 @@ const useTieCallbacksToEvents = ({ clientCallbacks, user, setHasLoggedOut, }) =>
101
101
  useInternalDynamicEvents('walletAdded', (wallet, userWallets) => {
102
102
  var _a;
103
103
  setHasLoggedOut(false);
104
+ logger.debug('[walletAdded]', { userWallets, wallet });
104
105
  (_a = clientCallbacks === null || clientCallbacks === void 0 ? void 0 : clientCallbacks.onWalletAdded) === null || _a === void 0 ? void 0 : _a.call(clientCallbacks, { userWallets, wallet });
105
106
  });
106
107
  useInternalDynamicEvents('walletRemoved', (wallet, userWallets) => {
107
108
  var _a;
109
+ logger.debug('[walletRemoved]', { userWallets, wallet });
108
110
  (_a = clientCallbacks === null || clientCallbacks === void 0 ? void 0 : clientCallbacks.onWalletRemoved) === null || _a === void 0 ? void 0 : _a.call(clientCallbacks, { userWallets, wallet });
109
111
  });
110
112
  useInternalDynamicEvents('embeddedWalletCreated', (_wallet, jwtVerifiedCredential, authToken, user) => {
111
113
  var _a;
114
+ logger.debug('[embeddedWalletCreated]', {
115
+ _wallet,
116
+ authToken,
117
+ jwtVerifiedCredential,
118
+ user,
119
+ });
112
120
  (_a = clientCallbacks === null || clientCallbacks === void 0 ? void 0 : clientCallbacks.onEmbeddedWalletCreated) === null || _a === void 0 ? void 0 : _a.call(clientCallbacks, jwtVerifiedCredential, authToken, user);
113
121
  });
114
122
  useInternalDynamicEvents('logout', () => {
@@ -117,10 +125,12 @@ const useTieCallbacksToEvents = ({ clientCallbacks, user, setHasLoggedOut, }) =>
117
125
  });
118
126
  useInternalDynamicEvents('authFailure', (data, reason) => {
119
127
  var _a;
128
+ logger.debug('[authFailure]', { data, reason });
120
129
  (_a = clientCallbacks === null || clientCallbacks === void 0 ? void 0 : clientCallbacks.onAuthFailure) === null || _a === void 0 ? void 0 : _a.call(clientCallbacks, data, reason);
121
130
  });
122
131
  useInternalDynamicEvents('authInit', (data) => {
123
132
  var _a;
133
+ logger.debug('[authInit]', { data });
124
134
  (_a = clientCallbacks === null || clientCallbacks === void 0 ? void 0 : clientCallbacks.onAuthInit) === null || _a === void 0 ? void 0 : _a.call(clientCallbacks, data);
125
135
  });
126
136
  };
@@ -0,0 +1,77 @@
1
+ 'use client'
2
+ 'use strict';
3
+
4
+ Object.defineProperty(exports, '__esModule', { value: true });
5
+
6
+ var jsxRuntime = require('react/jsx-runtime');
7
+ var React = require('react');
8
+ require('@dynamic-labs/wallet-connector-core');
9
+ require('@dynamic-labs/sdk-api-core');
10
+ require('../../utils/constants/values.cjs');
11
+ require('@dynamic-labs/utils');
12
+ require('../../../../_virtual/_tslib.cjs');
13
+ require('@dynamic-labs/multi-wallet');
14
+ require('../../shared/logger.cjs');
15
+ require('@dynamic-labs/iconic');
16
+ require('../ViewContext/ViewContext.cjs');
17
+ require('@dynamic-labs/wallet-book');
18
+ require('../../utils/constants/colors.cjs');
19
+ require('../../shared/utils/classes/storage/localStorage.cjs');
20
+ require('../../shared/consts/index.cjs');
21
+ require('react-international-phone');
22
+ var randomString = require('../../utils/functions/randomString/randomString.cjs');
23
+ require('viem');
24
+ require('viem/chains');
25
+ require('../../config/ApiEndpoint.cjs');
26
+ require('@dynamic-labs/store');
27
+ require('../../locale/locale.cjs');
28
+
29
+ const widgetRegistryContext = React.createContext(null);
30
+ const WidgetRegistryContextProvider = ({ children, }) => {
31
+ const [registry, setRegistry] = React.useState({});
32
+ const registerId = React.useCallback((widgetId, widgetType) => {
33
+ setRegistry((prevRegistry) => (Object.assign(Object.assign({}, prevRegistry), { [widgetId]: {
34
+ type: widgetType,
35
+ } })));
36
+ }, [setRegistry]);
37
+ const removeId = React.useCallback((widgetId) => {
38
+ setRegistry((prevRegistry) => {
39
+ const newRegistry = Object.assign({}, prevRegistry);
40
+ delete newRegistry[widgetId];
41
+ return newRegistry;
42
+ });
43
+ }, [setRegistry]);
44
+ const checkWidgetPresence = React.useCallback((widgetType) => Object.values(registry).some((widget) => widget.type === widgetType), [registry]);
45
+ return (jsxRuntime.jsx(widgetRegistryContext.Provider, { value: { checkWidgetPresence, registerId, removeId }, children: children }));
46
+ };
47
+ const useWidgetRegistry = () => {
48
+ const context = React.useContext(widgetRegistryContext);
49
+ if (context === null) {
50
+ throw new Error('usage of useWidgetRegistry not wrapped in `WidgetRegistryContextProvider`.');
51
+ }
52
+ return context;
53
+ };
54
+ const useRegisterWidget = (widgetType, enabled = true) => {
55
+ const idRef = React.useRef(randomString.randomString(8));
56
+ const { registerId, removeId } = useWidgetRegistry();
57
+ React.useEffect(() => {
58
+ if (enabled === false) {
59
+ return;
60
+ }
61
+ registerId(idRef.current, widgetType);
62
+ return () => {
63
+ // This is disabled because eslint think we are using state value
64
+ // but this is fine because it is a ref
65
+ // eslint-disable-next-line react-hooks/exhaustive-deps
66
+ removeId(idRef.current);
67
+ };
68
+ }, [widgetType, enabled, registerId, removeId]);
69
+ };
70
+ const useWidgetRegistryCheck = (widgetType) => {
71
+ const { checkWidgetPresence } = useWidgetRegistry();
72
+ return checkWidgetPresence(widgetType);
73
+ };
74
+
75
+ exports.WidgetRegistryContextProvider = WidgetRegistryContextProvider;
76
+ exports.useRegisterWidget = useRegisterWidget;
77
+ exports.useWidgetRegistryCheck = useWidgetRegistryCheck;
@@ -0,0 +1,6 @@
1
+ import { FC, PropsWithChildren } from 'react';
2
+ type WidgetType = 'user-profile';
3
+ export declare const WidgetRegistryContextProvider: FC<PropsWithChildren>;
4
+ export declare const useRegisterWidget: (widgetType: WidgetType, enabled?: boolean) => void;
5
+ export declare const useWidgetRegistryCheck: (widgetType: WidgetType) => boolean;
6
+ export {};
@@ -0,0 +1,71 @@
1
+ 'use client'
2
+ import { jsx } from 'react/jsx-runtime';
3
+ import { createContext, useState, useCallback, useContext, useRef, useEffect } from 'react';
4
+ import '@dynamic-labs/wallet-connector-core';
5
+ import '@dynamic-labs/sdk-api-core';
6
+ import '../../utils/constants/values.js';
7
+ import '@dynamic-labs/utils';
8
+ import '../../../../_virtual/_tslib.js';
9
+ import '@dynamic-labs/multi-wallet';
10
+ import '../../shared/logger.js';
11
+ import '@dynamic-labs/iconic';
12
+ import '../ViewContext/ViewContext.js';
13
+ import '@dynamic-labs/wallet-book';
14
+ import '../../utils/constants/colors.js';
15
+ import '../../shared/utils/classes/storage/localStorage.js';
16
+ import '../../shared/consts/index.js';
17
+ import 'react-international-phone';
18
+ import { randomString } from '../../utils/functions/randomString/randomString.js';
19
+ import 'viem';
20
+ import 'viem/chains';
21
+ import '../../config/ApiEndpoint.js';
22
+ import '@dynamic-labs/store';
23
+ import '../../locale/locale.js';
24
+
25
+ const widgetRegistryContext = createContext(null);
26
+ const WidgetRegistryContextProvider = ({ children, }) => {
27
+ const [registry, setRegistry] = useState({});
28
+ const registerId = useCallback((widgetId, widgetType) => {
29
+ setRegistry((prevRegistry) => (Object.assign(Object.assign({}, prevRegistry), { [widgetId]: {
30
+ type: widgetType,
31
+ } })));
32
+ }, [setRegistry]);
33
+ const removeId = useCallback((widgetId) => {
34
+ setRegistry((prevRegistry) => {
35
+ const newRegistry = Object.assign({}, prevRegistry);
36
+ delete newRegistry[widgetId];
37
+ return newRegistry;
38
+ });
39
+ }, [setRegistry]);
40
+ const checkWidgetPresence = useCallback((widgetType) => Object.values(registry).some((widget) => widget.type === widgetType), [registry]);
41
+ return (jsx(widgetRegistryContext.Provider, { value: { checkWidgetPresence, registerId, removeId }, children: children }));
42
+ };
43
+ const useWidgetRegistry = () => {
44
+ const context = useContext(widgetRegistryContext);
45
+ if (context === null) {
46
+ throw new Error('usage of useWidgetRegistry not wrapped in `WidgetRegistryContextProvider`.');
47
+ }
48
+ return context;
49
+ };
50
+ const useRegisterWidget = (widgetType, enabled = true) => {
51
+ const idRef = useRef(randomString(8));
52
+ const { registerId, removeId } = useWidgetRegistry();
53
+ useEffect(() => {
54
+ if (enabled === false) {
55
+ return;
56
+ }
57
+ registerId(idRef.current, widgetType);
58
+ return () => {
59
+ // This is disabled because eslint think we are using state value
60
+ // but this is fine because it is a ref
61
+ // eslint-disable-next-line react-hooks/exhaustive-deps
62
+ removeId(idRef.current);
63
+ };
64
+ }, [widgetType, enabled, registerId, removeId]);
65
+ };
66
+ const useWidgetRegistryCheck = (widgetType) => {
67
+ const { checkWidgetPresence } = useWidgetRegistry();
68
+ return checkWidgetPresence(widgetType);
69
+ };
70
+
71
+ export { WidgetRegistryContextProvider, useRegisterWidget, useWidgetRegistryCheck };
@@ -0,0 +1 @@
1
+ export { WidgetRegistryContextProvider, useRegisterWidget, useWidgetRegistryCheck, } from './WidgetRegistryContextProvider';
@@ -75,7 +75,7 @@ const linkWallet = (environmentId_1, _b) => _tslib.__awaiter(void 0, [environmen
75
75
  throw new utils.DynamicError(data.error);
76
76
  }
77
77
  });
78
- const unlinkWallet = (_c) => _tslib.__awaiter(void 0, [_c], void 0, function* ({ environmentId, primaryWalletId, walletId, }) {
78
+ const unlinkWallet = (_c) => _tslib.__awaiter(void 0, [_c], void 0, function* ({ environmentId, primaryWalletId, walletId, onSuccess, }) {
79
79
  try {
80
80
  const response = yield api.sdkApi().verifyUnlink({
81
81
  environmentId,
@@ -84,6 +84,7 @@ const unlinkWallet = (_c) => _tslib.__awaiter(void 0, [_c], void 0, function* ({
84
84
  walletId,
85
85
  },
86
86
  });
87
+ onSuccess === null || onSuccess === void 0 ? void 0 : onSuccess();
87
88
  const user = storeAuthTokenAndUser.storeAuthTokenAndUser(response);
88
89
  return user;
89
90
  }
@@ -6,10 +6,11 @@ export declare const storeSelectedWallet: ({ environmentId, walletId, }: {
6
6
  walletId: string;
7
7
  }) => Promise<UserProfile | undefined>;
8
8
  export declare const linkWallet: (environmentId: string, { messageToSign, network, signedMessage, publicWalletAddress, chain, walletName, walletProvider, additionalWalletAddresses, backup, password, passwordSource, }: VerifyWallet) => Promise<VerifyResponse | undefined>;
9
- export declare const unlinkWallet: ({ environmentId, primaryWalletId, walletId, }: {
9
+ export declare const unlinkWallet: ({ environmentId, primaryWalletId, walletId, onSuccess, }: {
10
10
  environmentId: string;
11
11
  primaryWalletId: string | undefined;
12
12
  walletId: string;
13
+ onSuccess?: () => void;
13
14
  }) => Promise<UserProfile | undefined>;
14
15
  export declare const transferWallet: (environmentId: string, { network, messageToSign, signedMessage, publicWalletAddress, chain, walletName, walletProvider, skipEmptyAccountCheck, }: VerifyWallet) => Promise<UserProfile | undefined>;
15
16
  export declare const verifyWallet: (environmentId: string, { messageToSign, signedMessage, publicWalletAddress, chain, walletName, walletProvider, captchaToken, network, oauth, additionalWalletAddresses, }: VerifyWallet) => Promise<VerifyResponse | undefined>;
@@ -71,7 +71,7 @@ const linkWallet = (environmentId_1, _b) => __awaiter(void 0, [environmentId_1,
71
71
  throw new DynamicError(data.error);
72
72
  }
73
73
  });
74
- const unlinkWallet = (_c) => __awaiter(void 0, [_c], void 0, function* ({ environmentId, primaryWalletId, walletId, }) {
74
+ const unlinkWallet = (_c) => __awaiter(void 0, [_c], void 0, function* ({ environmentId, primaryWalletId, walletId, onSuccess, }) {
75
75
  try {
76
76
  const response = yield sdkApi().verifyUnlink({
77
77
  environmentId,
@@ -80,6 +80,7 @@ const unlinkWallet = (_c) => __awaiter(void 0, [_c], void 0, function* ({ enviro
80
80
  walletId,
81
81
  },
82
82
  });
83
+ onSuccess === null || onSuccess === void 0 ? void 0 : onSuccess();
83
84
  const user = storeAuthTokenAndUser(response);
84
85
  return user;
85
86
  }
@@ -6,7 +6,8 @@ import { PasskeyEvents } from './passkey';
6
6
  import { SocialEvents } from './social';
7
7
  import { UIEvents } from './ui';
8
8
  import { WalletEvents } from './wallets';
9
+ import { MultiWalletInternalEvents } from './multiWallet';
9
10
  /** Maps internal event names to their listeners */
10
- export type DynamicEvents = AuthEvents & UIEvents & OTPEvents & WalletEvents & PasskeyEvents & SocialEvents & EmbeddedWalletEvents;
11
+ export type DynamicEvents = AuthEvents & UIEvents & OTPEvents & WalletEvents & PasskeyEvents & SocialEvents & EmbeddedWalletEvents & MultiWalletInternalEvents;
11
12
  export declare const dynamicEvents: EventEmitter<DynamicEvents, any>;
12
13
  export type DynamicEventEmitter = typeof dynamicEvents;
@@ -0,0 +1,5 @@
1
+ export type MultiWalletInternalEvents = {
2
+ triggerComputePrimaryWalletMultiWalletStateFromAccounts: (props: {
3
+ accounts: string[];
4
+ }) => void;
5
+ };
@@ -31,8 +31,10 @@ export type DynamicEventsCallbacks = {
31
31
  onAuthInit?: (data: AuthEventPayload) => void;
32
32
  };
33
33
  export type OnAuthSuccess = (params: {
34
+ /** @deprecated use getAuthToken instead */
34
35
  authToken: string;
35
36
  handleLogOut: () => Promise<void>;
37
+ /** @deprecated use getMinAuthToken instead */
36
38
  minAuthToken: string;
37
39
  isAuthenticated: boolean;
38
40
  primaryWallet: Wallet | null;
@@ -58,4 +60,6 @@ destination: {
58
60
  value: PhoneData;
59
61
  }) => void;
60
62
  export type OnUserProfileUpdate = (user: UserProfile) => void;
61
- export type OnEmbeddedWalletCreated = (verifiedCredential: JwtVerifiedCredential | undefined, authToken: string | undefined, user: UserProfile | undefined) => void;
63
+ export type OnEmbeddedWalletCreated = (verifiedCredential: JwtVerifiedCredential | undefined,
64
+ /** @deprecated use getAuthToken instead */
65
+ authToken: string | undefined, user: UserProfile | undefined) => void;
@@ -0,0 +1,2 @@
1
+ import { UserProfile } from '@dynamic-labs/types';
2
+ export declare const isUserLinkingWallet: (user: UserProfile | undefined, view: string, isMockedSDK: boolean) => boolean;