@dynamic-labs/sdk-react-core 0.18.0-RC.19 → 0.18.0-RC.20

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 (51) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/package.cjs +2 -2
  3. package/package.js +2 -2
  4. package/package.json +9 -9
  5. package/src/lib/context/DynamicContext/DynamicContext.cjs +4 -0
  6. package/src/lib/context/DynamicContext/DynamicContext.js +4 -0
  7. package/src/lib/context/DynamicContext/hooks/useNameService/useNameService.cjs +1 -1
  8. package/src/lib/context/DynamicContext/hooks/useNameService/useNameService.js +1 -1
  9. package/src/lib/context/DynamicContext/types/index.d.ts +1 -1
  10. package/src/lib/context/DynamicContext/useCustomerCallbacks/types.d.ts +3 -2
  11. package/src/lib/context/DynamicContext/useCustomerCallbacks/useCustomerCallbacks.cjs +2 -1
  12. package/src/lib/context/DynamicContext/useCustomerCallbacks/useCustomerCallbacks.d.ts +1 -1
  13. package/src/lib/context/DynamicContext/useCustomerCallbacks/useCustomerCallbacks.js +2 -1
  14. package/src/lib/context/FundingContext/FundingContext.cjs +13 -1
  15. package/src/lib/context/FundingContext/FundingContext.js +13 -1
  16. package/src/lib/data/api.cjs +4 -2
  17. package/src/lib/data/api.d.ts +4 -1
  18. package/src/lib/data/api.js +4 -2
  19. package/src/lib/shared/types/index.d.ts +2 -0
  20. package/src/lib/utils/constants/onrampProviders.cjs +7 -0
  21. package/src/lib/utils/constants/onrampProviders.d.ts +1 -0
  22. package/src/lib/utils/constants/onrampProviders.js +3 -0
  23. package/src/lib/utils/functions/getWalletVerifiedCredential/getWalletVerifiedCredential.cjs +3 -1
  24. package/src/lib/utils/functions/getWalletVerifiedCredential/getWalletVerifiedCredential.d.ts +1 -1
  25. package/src/lib/utils/functions/getWalletVerifiedCredential/getWalletVerifiedCredential.js +3 -1
  26. package/src/lib/utils/functions/index.d.ts +1 -0
  27. package/src/lib/utils/functions/isOnrampProvider/index.d.ts +1 -0
  28. package/src/lib/utils/functions/isOnrampProvider/isOnrampProvider.cjs +9 -0
  29. package/src/lib/utils/functions/isOnrampProvider/isOnrampProvider.d.ts +2 -0
  30. package/src/lib/utils/functions/isOnrampProvider/isOnrampProvider.js +5 -0
  31. package/src/lib/utils/hooks/authenticationHooks/useConnectAndSign/useConnectAndSign.cjs +3 -0
  32. package/src/lib/utils/hooks/authenticationHooks/useConnectAndSign/useConnectAndSign.js +3 -0
  33. package/src/lib/utils/hooks/authenticationHooks/useConnectAndSignSplitSteps/useConnectAndSignSplitSteps.cjs +3 -0
  34. package/src/lib/utils/hooks/authenticationHooks/useConnectAndSignSplitSteps/useConnectAndSignSplitSteps.js +3 -0
  35. package/src/lib/utils/hooks/authenticationHooks/useSignConnectOnlyUser/useSignConnectOnlyUser.cjs +3 -0
  36. package/src/lib/utils/hooks/authenticationHooks/useSignConnectOnlyUser/useSignConnectOnlyUser.js +3 -0
  37. package/src/lib/utils/hooks/multiWallet/useSyncPrimaryWallet/useSyncPrimaryWallet.cjs +2 -1
  38. package/src/lib/utils/hooks/multiWallet/useSyncPrimaryWallet/useSyncPrimaryWallet.d.ts +1 -1
  39. package/src/lib/utils/hooks/multiWallet/useSyncPrimaryWallet/useSyncPrimaryWallet.js +2 -1
  40. package/src/lib/utils/hooks/useConnectWallet/useConnectWallet.cjs +9 -1
  41. package/src/lib/utils/hooks/useConnectWallet/useConnectWallet.d.ts +6 -3
  42. package/src/lib/utils/hooks/useConnectWallet/useConnectWallet.js +9 -1
  43. package/src/lib/utils/hooks/useFetchProjectSettings/useFetchProjectSettings.cjs +1 -1
  44. package/src/lib/utils/hooks/useFetchProjectSettings/useFetchProjectSettings.js +1 -1
  45. package/src/lib/utils/hooks/useWalletConnectors/useWalletConnectors.cjs +4 -3
  46. package/src/lib/utils/hooks/useWalletConnectors/useWalletConnectors.d.ts +2 -1
  47. package/src/lib/utils/hooks/useWalletConnectors/useWalletConnectors.js +4 -3
  48. package/src/lib/views/WalletUsedView/WalletUsedView.cjs +3 -0
  49. package/src/lib/views/WalletUsedView/WalletUsedView.js +3 -0
  50. package/src/lib/widgets/DynamicWidget/components/DynamicWidgetWallets/DynamicWidgetWallets.cjs +1 -1
  51. package/src/lib/widgets/DynamicWidget/components/DynamicWidgetWallets/DynamicWidgetWallets.js +1 -1
package/CHANGELOG.md CHANGED
@@ -1,4 +1,20 @@
1
1
 
2
+ ## [0.18.0-RC.20](https://github.com/dynamic-labs/DynamicAuth/compare/v0.18.0-RC.19...v0.18.0-RC.20) (2023-07-27)
3
+
4
+
5
+ ### Features
6
+
7
+ * **QNTM-56:** add onBeforeConnectSuccessConfirmation callback ([#2753](https://github.com/dynamic-labs/DynamicAuth/issues/2753)) ([b174396](https://github.com/dynamic-labs/DynamicAuth/commit/b174396ab341cbcf11c6940e54931c0db3954d0d))
8
+ * **QNTM-72:** add backpack wallet ([#2702](https://github.com/dynamic-labs/DynamicAuth/issues/2702)) ([0d0ce9c](https://github.com/dynamic-labs/DynamicAuth/commit/0d0ce9c0d92118a78b5e40f64c5530246523712a))
9
+
10
+
11
+ ### Bug Fixes
12
+
13
+ * bump sdk version and change sdksettings api ([#2760](https://github.com/dynamic-labs/DynamicAuth/issues/2760)) ([6e3e205](https://github.com/dynamic-labs/DynamicAuth/commit/6e3e2050ed63d2df2d88d9169bc89d5f17870847))
14
+ * check funding enabled based on enabled onramp providers instead of onrampFunding settings ([#2662](https://github.com/dynamic-labs/DynamicAuth/issues/2662)) ([d542a9b](https://github.com/dynamic-labs/DynamicAuth/commit/d542a9b2950640e473afe378c857f4d2dd1926ff))
15
+ * ensure metamask auto-redirect upon message signing ([#2757](https://github.com/dynamic-labs/DynamicAuth/issues/2757)) ([a590f4b](https://github.com/dynamic-labs/DynamicAuth/commit/a590f4b054cd1de7ad400763d769b0daf4fcaad2))
16
+ * **QNTM-123:** use `linkedWallets` after signing the first message ([#2741](https://github.com/dynamic-labs/DynamicAuth/issues/2741)) ([7f26151](https://github.com/dynamic-labs/DynamicAuth/commit/7f26151db69b50102fd4b09ec470c8f19ce7b68f))
17
+
2
18
  ## [0.18.0-RC.19](https://github.com/dynamic-labs/DynamicAuth/compare/v0.18.0-RC.18...v0.18.0-RC.19) (2023-07-25)
3
19
 
4
20
 
package/package.cjs CHANGED
@@ -2,11 +2,11 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var version = "0.18.0-RC.19";
5
+ var version = "0.18.0-RC.20";
6
6
  var dependencies = {
7
7
  "react-focus-lock": "2.9.2",
8
8
  "@dynamic-labs/iconic": "0.1.23",
9
- "@dynamic-labs/sdk-api": "0.0.237",
9
+ "@dynamic-labs/sdk-api": "0.0.247",
10
10
  "@hcaptcha/react-hcaptcha": "1.4.4",
11
11
  "country-list": "2.3.0",
12
12
  yup: "0.32.11",
package/package.js CHANGED
@@ -1,8 +1,8 @@
1
- var version = "0.18.0-RC.19";
1
+ var version = "0.18.0-RC.20";
2
2
  var dependencies = {
3
3
  "react-focus-lock": "2.9.2",
4
4
  "@dynamic-labs/iconic": "0.1.23",
5
- "@dynamic-labs/sdk-api": "0.0.237",
5
+ "@dynamic-labs/sdk-api": "0.0.247",
6
6
  "@hcaptcha/react-hcaptcha": "1.4.4",
7
7
  "country-list": "2.3.0",
8
8
  yup: "0.32.11",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dynamic-labs/sdk-react-core",
3
- "version": "0.18.0-RC.19",
3
+ "version": "0.18.0-RC.20",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "https://github.com/dynamic-labs/DynamicAuth.git",
@@ -9,20 +9,20 @@
9
9
  "dependencies": {
10
10
  "react-focus-lock": "2.9.2",
11
11
  "@dynamic-labs/iconic": "0.1.23",
12
- "@dynamic-labs/sdk-api": "0.0.237",
12
+ "@dynamic-labs/sdk-api": "0.0.247",
13
13
  "@hcaptcha/react-hcaptcha": "1.4.4",
14
14
  "country-list": "2.3.0",
15
15
  "yup": "0.32.11",
16
16
  "formik": "2.2.9",
17
17
  "qrcode": "1.5.1",
18
18
  "ethers": "5.7.2",
19
- "@dynamic-labs/logger": "0.18.0-RC.19",
20
- "@dynamic-labs/multi-wallet": "0.18.0-RC.19",
21
- "@dynamic-labs/rpc-providers": "0.18.0-RC.19",
22
- "@dynamic-labs/types": "0.18.0-RC.19",
23
- "@dynamic-labs/utils": "0.18.0-RC.19",
24
- "@dynamic-labs/wallet-book": "0.18.0-RC.19",
25
- "@dynamic-labs/wallet-connector-core": "0.18.0-RC.19"
19
+ "@dynamic-labs/logger": "0.18.0-RC.20",
20
+ "@dynamic-labs/multi-wallet": "0.18.0-RC.20",
21
+ "@dynamic-labs/rpc-providers": "0.18.0-RC.20",
22
+ "@dynamic-labs/types": "0.18.0-RC.20",
23
+ "@dynamic-labs/utils": "0.18.0-RC.20",
24
+ "@dynamic-labs/wallet-book": "0.18.0-RC.20",
25
+ "@dynamic-labs/wallet-connector-core": "0.18.0-RC.20"
26
26
  },
27
27
  "devDependencies": {
28
28
  "semver": "7.3.8"
@@ -198,12 +198,14 @@ const DynamicContextProvider = ({ children, theme, settings, }) => {
198
198
  clearPrimaryWalletId,
199
199
  enableVisitTrackingOnConnectOnly,
200
200
  environmentId,
201
+ onBeforeConnectSuccessConfirmation: eventsCallbacks === null || eventsCallbacks === void 0 ? void 0 : eventsCallbacks.onBeforeConnectSuccessConfirmation,
201
202
  onUnlink: (walletId, connectedWalletsInfo) => {
202
203
  const missingChains = getMissingChains.getMissingChains(walletsByChain, connectedWalletsInfo);
203
204
  setWalletsToConnectByChain(missingChains);
204
205
  },
205
206
  primaryWalletId,
206
207
  setPrimaryWalletId,
208
+ setShowAuthFlow,
207
209
  wallets,
208
210
  });
209
211
  useEffectOnce.useEffectOnce(() => {
@@ -222,6 +224,7 @@ const DynamicContextProvider = ({ children, theme, settings, }) => {
222
224
  authToken: getAuthToken.getAuthToken() || onboardingOnlyJwt,
223
225
  connectedWallets,
224
226
  multiWalletWidgetState,
227
+ onboardingOnlyJwt,
225
228
  primaryWalletId,
226
229
  setDesktopUri,
227
230
  setMultiWalletWidgetState,
@@ -353,6 +356,7 @@ const DynamicContextProvider = ({ children, theme, settings, }) => {
353
356
  authMode,
354
357
  callbacks: {
355
358
  onAuthSuccess: eventsCallbacks === null || eventsCallbacks === void 0 ? void 0 : eventsCallbacks.onAuthSuccess,
359
+ onBeforeConnectSuccessConfirmation: eventsCallbacks === null || eventsCallbacks === void 0 ? void 0 : eventsCallbacks.onBeforeConnectSuccessConfirmation,
356
360
  onConnectSuccess: eventsCallbacks === null || eventsCallbacks === void 0 ? void 0 : eventsCallbacks.onConnectSuccess,
357
361
  onLinkSuccess: eventsCallbacks === null || eventsCallbacks === void 0 ? void 0 : eventsCallbacks.onLinkSuccess,
358
362
  onUserProfileUpdate: eventsCallbacks === null || eventsCallbacks === void 0 ? void 0 : eventsCallbacks.onUserProfileUpdate,
@@ -194,12 +194,14 @@ const DynamicContextProvider = ({ children, theme, settings, }) => {
194
194
  clearPrimaryWalletId,
195
195
  enableVisitTrackingOnConnectOnly,
196
196
  environmentId,
197
+ onBeforeConnectSuccessConfirmation: eventsCallbacks === null || eventsCallbacks === void 0 ? void 0 : eventsCallbacks.onBeforeConnectSuccessConfirmation,
197
198
  onUnlink: (walletId, connectedWalletsInfo) => {
198
199
  const missingChains = getMissingChains(walletsByChain, connectedWalletsInfo);
199
200
  setWalletsToConnectByChain(missingChains);
200
201
  },
201
202
  primaryWalletId,
202
203
  setPrimaryWalletId,
204
+ setShowAuthFlow,
203
205
  wallets,
204
206
  });
205
207
  useEffectOnce(() => {
@@ -218,6 +220,7 @@ const DynamicContextProvider = ({ children, theme, settings, }) => {
218
220
  authToken: getAuthToken() || onboardingOnlyJwt,
219
221
  connectedWallets,
220
222
  multiWalletWidgetState,
223
+ onboardingOnlyJwt,
221
224
  primaryWalletId,
222
225
  setDesktopUri,
223
226
  setMultiWalletWidgetState,
@@ -349,6 +352,7 @@ const DynamicContextProvider = ({ children, theme, settings, }) => {
349
352
  authMode,
350
353
  callbacks: {
351
354
  onAuthSuccess: eventsCallbacks === null || eventsCallbacks === void 0 ? void 0 : eventsCallbacks.onAuthSuccess,
355
+ onBeforeConnectSuccessConfirmation: eventsCallbacks === null || eventsCallbacks === void 0 ? void 0 : eventsCallbacks.onBeforeConnectSuccessConfirmation,
352
356
  onConnectSuccess: eventsCallbacks === null || eventsCallbacks === void 0 ? void 0 : eventsCallbacks.onConnectSuccess,
353
357
  onLinkSuccess: eventsCallbacks === null || eventsCallbacks === void 0 ? void 0 : eventsCallbacks.onLinkSuccess,
354
358
  onUserProfileUpdate: eventsCallbacks === null || eventsCallbacks === void 0 ? void 0 : eventsCallbacks.onUserProfileUpdate,
@@ -59,7 +59,7 @@ const useNameService = ({ currentWallet, authToken }) => {
59
59
  const verifiedCredentials = (_a = decodeJwt.decodeJwt(authToken)) === null || _a === void 0 ? void 0 : _a.verifiedCredentials;
60
60
  //if there are verified credentials, check if there is a name service for the current wallet
61
61
  if (verifiedCredentials) {
62
- const verifiedCredential = getWalletVerifiedCredential.getWalletVerifiedCredential(currentWallet === null || currentWallet === void 0 ? void 0 : currentWallet.address, verifiedCredentials);
62
+ const verifiedCredential = getWalletVerifiedCredential.getWalletVerifiedCredential(currentWallet === null || currentWallet === void 0 ? void 0 : currentWallet.address, verifiedCredentials, currentWallet.chain);
63
63
  if (verifiedCredential && ((_b = verifiedCredential.nameService) === null || _b === void 0 ? void 0 : _b.name)) {
64
64
  return verifiedCredential.nameService;
65
65
  }
@@ -55,7 +55,7 @@ const useNameService = ({ currentWallet, authToken }) => {
55
55
  const verifiedCredentials = (_a = decodeJwt(authToken)) === null || _a === void 0 ? void 0 : _a.verifiedCredentials;
56
56
  //if there are verified credentials, check if there is a name service for the current wallet
57
57
  if (verifiedCredentials) {
58
- const verifiedCredential = getWalletVerifiedCredential(currentWallet === null || currentWallet === void 0 ? void 0 : currentWallet.address, verifiedCredentials);
58
+ const verifiedCredential = getWalletVerifiedCredential(currentWallet === null || currentWallet === void 0 ? void 0 : currentWallet.address, verifiedCredentials, currentWallet.chain);
59
59
  if (verifiedCredential && ((_b = verifiedCredential.nameService) === null || _b === void 0 ? void 0 : _b.name)) {
60
60
  return verifiedCredential.nameService;
61
61
  }
@@ -39,7 +39,7 @@ export interface IDynamicContext {
39
39
  setBridgeChainToConnect: Dispatch<SetStateAction<Chain | undefined>>;
40
40
  clearStatesOnBackClick: () => void;
41
41
  computeConnectedStateForWallets: () => Promise<void>;
42
- connectWallet: (walletConnector: WalletConnector, fetchPublicAddressOpts?: FetchPublicAddressOpts) => Promise<string>;
42
+ connectWallet: (walletConnector: WalletConnector, fetchPublicAddressOpts?: FetchPublicAddressOpts) => Promise<string | undefined>;
43
43
  connectedWallet: Wallet | null;
44
44
  connectedWallets: Wallet[];
45
45
  linkedWallets: Wallet[];
@@ -1,12 +1,13 @@
1
1
  import { WalletConnector } from '../../../..';
2
- import { AuthModeType, OnAuthSuccess, OnConnectSuccess, OnUserProfileUpdate, UserProfile, Wallet } from '../../../shared/types';
2
+ import { AuthModeType, OnAuthSuccess, OnBeforeConnectSuccessConfirmation, OnConnectSuccess, OnUserProfileUpdate, UserProfile, Wallet } from '../../../shared/types';
3
3
  import { IOngoingVerifications } from '../types';
4
- export type Callback = 'authSuccess' | 'linkSuccess' | 'userProfileUpdate' | 'connectSuccess';
4
+ export type Callback = 'authSuccess' | 'linkSuccess' | 'userProfileUpdate' | 'connectSuccess' | 'onBeforeConnectSuccessConfirmation';
5
5
  export type UseCustomerCallbacksArgs = {
6
6
  authMode: AuthModeType;
7
7
  callbacks: {
8
8
  onAuthSuccess?: OnAuthSuccess;
9
9
  onConnectSuccess?: OnConnectSuccess;
10
+ onBeforeConnectSuccessConfirmation?: OnBeforeConnectSuccessConfirmation;
10
11
  onLinkSuccess?: OnAuthSuccess;
11
12
  onUserProfileUpdate?: OnUserProfileUpdate;
12
13
  };
@@ -20,7 +20,7 @@ var getAuthToken = require('../../../utils/functions/getAuthToken/getAuthToken.c
20
20
  var isConnectOnly = require('../../../utils/hooks/authenticationHooks/helpers/isConnectOnly.cjs');
21
21
  var disableAuthVerificationFlag = require('./utils/disableAuthVerificationFlag/disableAuthVerificationFlag.cjs');
22
22
 
23
- const useCustomerCallbacks = ({ callbacks: { onAuthSuccess, onLinkSuccess, onUserProfileUpdate, onConnectSuccess, }, handleLogOut, primaryWallet, selectedWalletConnector, user, isAuthenticated, authMode, ongoingVerifications, }) => {
23
+ const useCustomerCallbacks = ({ callbacks: { onAuthSuccess, onLinkSuccess, onUserProfileUpdate, onConnectSuccess, onBeforeConnectSuccessConfirmation, }, handleLogOut, primaryWallet, selectedWalletConnector, user, isAuthenticated, authMode, ongoingVerifications, }) => {
24
24
  const [callbackQueue, setCallbackQueue] = React.useState([]);
25
25
  const isConnectOnlyAndCallbackIsConnectSuccess = React.useCallback((next) => isConnectOnly.isConnectOnly(user, authMode) &&
26
26
  Boolean(primaryWallet) &&
@@ -121,6 +121,7 @@ const useCustomerCallbacks = ({ callbacks: { onAuthSuccess, onLinkSuccess, onUse
121
121
  authMode,
122
122
  isConnectOnlyAndCallbackIsConnectSuccess,
123
123
  ongoingVerifications,
124
+ selectedWalletConnector,
124
125
  ]);
125
126
  const setCallback = (callback) => {
126
127
  setCallbackQueue((prev) => [...prev, callback]);
@@ -1,4 +1,4 @@
1
1
  import { Callback, UseCustomerCallbacksArgs } from './types';
2
- export declare const useCustomerCallbacks: ({ callbacks: { onAuthSuccess, onLinkSuccess, onUserProfileUpdate, onConnectSuccess, }, handleLogOut, primaryWallet, selectedWalletConnector, user, isAuthenticated, authMode, ongoingVerifications, }: UseCustomerCallbacksArgs) => {
2
+ export declare const useCustomerCallbacks: ({ callbacks: { onAuthSuccess, onLinkSuccess, onUserProfileUpdate, onConnectSuccess, onBeforeConnectSuccessConfirmation, }, handleLogOut, primaryWallet, selectedWalletConnector, user, isAuthenticated, authMode, ongoingVerifications, }: UseCustomerCallbacksArgs) => {
3
3
  setCallback: (callback: Callback) => void;
4
4
  };
@@ -16,7 +16,7 @@ import { getAuthToken } from '../../../utils/functions/getAuthToken/getAuthToken
16
16
  import { isConnectOnly } from '../../../utils/hooks/authenticationHooks/helpers/isConnectOnly.js';
17
17
  import { disableAuthVerificationFlag } from './utils/disableAuthVerificationFlag/disableAuthVerificationFlag.js';
18
18
 
19
- const useCustomerCallbacks = ({ callbacks: { onAuthSuccess, onLinkSuccess, onUserProfileUpdate, onConnectSuccess, }, handleLogOut, primaryWallet, selectedWalletConnector, user, isAuthenticated, authMode, ongoingVerifications, }) => {
19
+ const useCustomerCallbacks = ({ callbacks: { onAuthSuccess, onLinkSuccess, onUserProfileUpdate, onConnectSuccess, onBeforeConnectSuccessConfirmation, }, handleLogOut, primaryWallet, selectedWalletConnector, user, isAuthenticated, authMode, ongoingVerifications, }) => {
20
20
  const [callbackQueue, setCallbackQueue] = useState([]);
21
21
  const isConnectOnlyAndCallbackIsConnectSuccess = useCallback((next) => isConnectOnly(user, authMode) &&
22
22
  Boolean(primaryWallet) &&
@@ -117,6 +117,7 @@ const useCustomerCallbacks = ({ callbacks: { onAuthSuccess, onLinkSuccess, onUse
117
117
  authMode,
118
118
  isConnectOnlyAndCallbackIsConnectSuccess,
119
119
  ongoingVerifications,
120
+ selectedWalletConnector,
120
121
  ]);
121
122
  const setCallback = (callback) => {
122
123
  setCallbackQueue((prev) => [...prev, callback]);
@@ -8,6 +8,18 @@ var React = require('react');
8
8
  var walletConnectorCore = require('@dynamic-labs/wallet-connector-core');
9
9
  var api = require('../../data/api.cjs');
10
10
  var useInternalDynamicContext = require('../DynamicContext/useInternalDynamicContext.cjs');
11
+ require('@dynamic-labs/sdk-api');
12
+ require('../../shared/logger.cjs');
13
+ require('@dynamic-labs/iconic');
14
+ require('../ViewContext/ViewContext.cjs');
15
+ require('@dynamic-labs/wallet-book');
16
+ require('@dynamic-labs/utils');
17
+ require('../../utils/constants/colors.cjs');
18
+ require('../../shared/utils/classes/storage/localStorage.cjs');
19
+ require('ethers');
20
+ require('../../shared/consts/index.cjs');
21
+ require('@dynamic-labs/multi-wallet');
22
+ var isOnrampProvider = require('../../utils/functions/isOnrampProvider/isOnrampProvider.cjs');
11
23
 
12
24
  const FundingContext = React.createContext(undefined);
13
25
  const FundingContextProvider = ({ children, }) => {
@@ -17,7 +29,7 @@ const FundingContextProvider = ({ children, }) => {
17
29
  const [supportsFunding, setSupportsFunding] = React.useState(false);
18
30
  const [fundingUrl, setFundingUrl] = React.useState('');
19
31
  const { environmentId, network, primaryWallet, projectSettings } = useInternalDynamicContext.useInternalDynamicContext();
20
- const fundingEnabled = (_b = (_a = projectSettings === null || projectSettings === void 0 ? void 0 : projectSettings.sdk) === null || _a === void 0 ? void 0 : _a.onrampFunding) !== null && _b !== void 0 ? _b : false;
32
+ const fundingEnabled = (_b = (_a = projectSettings === null || projectSettings === void 0 ? void 0 : projectSettings.providers) === null || _a === void 0 ? void 0 : _a.some((p) => isOnrampProvider.isOnrampProvider(p) && Boolean(p.enabledAt))) !== null && _b !== void 0 ? _b : false;
21
33
  const value = React.useMemo(() => ({
22
34
  fundingEnabled,
23
35
  fundingRef,
@@ -4,6 +4,18 @@ import { createContext, useRef, useState, useMemo, useEffect, useContext } from
4
4
  import { getChainInfo } from '@dynamic-labs/wallet-connector-core';
5
5
  import { getOnrampProviders } from '../../data/api.js';
6
6
  import { useInternalDynamicContext } from '../DynamicContext/useInternalDynamicContext.js';
7
+ import '@dynamic-labs/sdk-api';
8
+ import '../../shared/logger.js';
9
+ import '@dynamic-labs/iconic';
10
+ import '../ViewContext/ViewContext.js';
11
+ import '@dynamic-labs/wallet-book';
12
+ import '@dynamic-labs/utils';
13
+ import '../../utils/constants/colors.js';
14
+ import '../../shared/utils/classes/storage/localStorage.js';
15
+ import 'ethers';
16
+ import '../../shared/consts/index.js';
17
+ import '@dynamic-labs/multi-wallet';
18
+ import { isOnrampProvider } from '../../utils/functions/isOnrampProvider/isOnrampProvider.js';
7
19
 
8
20
  const FundingContext = createContext(undefined);
9
21
  const FundingContextProvider = ({ children, }) => {
@@ -13,7 +25,7 @@ const FundingContextProvider = ({ children, }) => {
13
25
  const [supportsFunding, setSupportsFunding] = useState(false);
14
26
  const [fundingUrl, setFundingUrl] = useState('');
15
27
  const { environmentId, network, primaryWallet, projectSettings } = useInternalDynamicContext();
16
- const fundingEnabled = (_b = (_a = projectSettings === null || projectSettings === void 0 ? void 0 : projectSettings.sdk) === null || _a === void 0 ? void 0 : _a.onrampFunding) !== null && _b !== void 0 ? _b : false;
28
+ const fundingEnabled = (_b = (_a = projectSettings === null || projectSettings === void 0 ? void 0 : projectSettings.providers) === null || _a === void 0 ? void 0 : _a.some((p) => isOnrampProvider(p) && Boolean(p.enabledAt))) !== null && _b !== void 0 ? _b : false;
17
29
  const value = useMemo(() => ({
18
30
  fundingEnabled,
19
31
  fundingRef,
@@ -374,12 +374,14 @@ const getOnrampProviders = ({ chain, environmentId, networkId, token, walletAddr
374
374
  }
375
375
  return onramps;
376
376
  });
377
- const sendDynamicProps = (environmentId, dynamicContextProps) => _tslib.__awaiter(void 0, void 0, void 0, function* () {
377
+ const sendDynamicProps = (environmentId, settingsToSend) => _tslib.__awaiter(void 0, void 0, void 0, function* () {
378
378
  try {
379
- yield sdkApi().updateSdkSettings({
379
+ const { dynamicContextProps, dynamicWagmiSettings } = settingsToSend;
380
+ yield sdkApi().logDynamicSdkSettings({
380
381
  environmentId,
381
382
  sdkSettingsRequest: {
382
383
  dynamicContextProps,
384
+ dynamicWagmiSettings,
383
385
  },
384
386
  });
385
387
  }
@@ -62,4 +62,7 @@ export declare const getOnrampProviders: ({ chain, environmentId, networkId, tok
62
62
  token?: string | undefined;
63
63
  walletAddress: string;
64
64
  }) => Promise<OnrampConfiguration[]>;
65
- export declare const sendDynamicProps: (environmentId: string, dynamicContextProps: object) => Promise<void>;
65
+ export declare const sendDynamicProps: (environmentId: string, settingsToSend: {
66
+ dynamicContextProps?: object;
67
+ dynamicWagmiSettings?: object;
68
+ }) => Promise<void>;
@@ -370,12 +370,14 @@ const getOnrampProviders = ({ chain, environmentId, networkId, token, walletAddr
370
370
  }
371
371
  return onramps;
372
372
  });
373
- const sendDynamicProps = (environmentId, dynamicContextProps) => __awaiter(void 0, void 0, void 0, function* () {
373
+ const sendDynamicProps = (environmentId, settingsToSend) => __awaiter(void 0, void 0, void 0, function* () {
374
374
  try {
375
- yield sdkApi().updateSdkSettings({
375
+ const { dynamicContextProps, dynamicWagmiSettings } = settingsToSend;
376
+ yield sdkApi().logDynamicSdkSettings({
376
377
  environmentId,
377
378
  sdkSettingsRequest: {
378
379
  dynamicContextProps,
380
+ dynamicWagmiSettings,
379
381
  },
380
382
  });
381
383
  }
@@ -102,6 +102,7 @@ export type OnAuthSuccess = (params: {
102
102
  export type OnConnectSuccess = (params: {
103
103
  walletConnector: WalletConnector | null;
104
104
  }) => void;
105
+ export type OnBeforeConnectSuccessConfirmation = (walletAddress: string) => Promise<boolean>;
105
106
  export type OnUserProfileUpdate = (user: UserProfile) => void;
106
107
  export type MultiWalletWidgetState = 'idle' | 'awaiting_account_switch' | 'awaiting_connection' | 'awaiting_signature' | 'detected_new_wallet';
107
108
  export type AccountSwitchState = 'idle' | 'linking_new_wallet' | 'switching_primary' | 'primary_not_connected';
@@ -145,6 +146,7 @@ export type DynamicEventsCallbacks = {
145
146
  onAuthFlowOpen?: () => void;
146
147
  onAuthSuccess?: OnAuthSuccess;
147
148
  onConnectSuccess?: OnConnectSuccess;
149
+ onBeforeConnectSuccessConfirmation?: OnBeforeConnectSuccessConfirmation;
148
150
  onLinkSuccess?: OnAuthSuccess;
149
151
  onLogout?: (user: UserProfile | undefined) => void;
150
152
  onUnlinkSuccess?: (unlinkedWallet: JwtVerifiedCredential) => void;
@@ -0,0 +1,7 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ const ONRAMP_PROVIDERS = ['banxa'];
6
+
7
+ exports.ONRAMP_PROVIDERS = ONRAMP_PROVIDERS;
@@ -0,0 +1 @@
1
+ export declare const ONRAMP_PROVIDERS: string[];
@@ -0,0 +1,3 @@
1
+ const ONRAMP_PROVIDERS = ['banxa'];
2
+
3
+ export { ONRAMP_PROVIDERS };
@@ -2,6 +2,8 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- const getWalletVerifiedCredential = (walletAddress, verifiedCredentials) => verifiedCredentials === null || verifiedCredentials === void 0 ? void 0 : verifiedCredentials.find((credential) => credential.address === walletAddress);
5
+ var walletConnectorCore = require('@dynamic-labs/wallet-connector-core');
6
+
7
+ const getWalletVerifiedCredential = (walletAddress, verifiedCredentials, walletChain) => verifiedCredentials === null || verifiedCredentials === void 0 ? void 0 : verifiedCredentials.find(({ address }) => walletConnectorCore.isSameAddress(address || '', walletAddress || '', walletChain));
6
8
 
7
9
  exports.getWalletVerifiedCredential = getWalletVerifiedCredential;
@@ -1,2 +1,2 @@
1
1
  import { JwtVerifiedCredential } from '@dynamic-labs/sdk-api';
2
- export declare const getWalletVerifiedCredential: (walletAddress: string | undefined, verifiedCredentials: JwtVerifiedCredential[] | undefined) => JwtVerifiedCredential | undefined;
2
+ export declare const getWalletVerifiedCredential: (walletAddress: string | undefined, verifiedCredentials: JwtVerifiedCredential[] | undefined, walletChain: string) => JwtVerifiedCredential | undefined;
@@ -1,3 +1,5 @@
1
- const getWalletVerifiedCredential = (walletAddress, verifiedCredentials) => verifiedCredentials === null || verifiedCredentials === void 0 ? void 0 : verifiedCredentials.find((credential) => credential.address === walletAddress);
1
+ import { isSameAddress } from '@dynamic-labs/wallet-connector-core';
2
+
3
+ const getWalletVerifiedCredential = (walletAddress, verifiedCredentials, walletChain) => verifiedCredentials === null || verifiedCredentials === void 0 ? void 0 : verifiedCredentials.find(({ address }) => isSameAddress(address || '', walletAddress || '', walletChain));
2
4
 
3
5
  export { getWalletVerifiedCredential };
@@ -18,4 +18,5 @@ export * from './getReferencedAccount';
18
18
  export * from './getAppOrigin';
19
19
  export * from './groupBy';
20
20
  export * from './isProviderEnabled';
21
+ export * from './isOnrampProvider';
21
22
  export * from './getWalletConnectorNetworks/getWalletConnectorNetworks';
@@ -0,0 +1 @@
1
+ export { isOnrampProvider } from './isOnrampProvider';
@@ -0,0 +1,9 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var onrampProviders = require('../../constants/onrampProviders.cjs');
6
+
7
+ const isOnrampProvider = (provider) => onrampProviders.ONRAMP_PROVIDERS.includes(provider.provider);
8
+
9
+ exports.isOnrampProvider = isOnrampProvider;
@@ -0,0 +1,2 @@
1
+ import { Provider } from '@dynamic-labs/sdk-api';
2
+ export declare const isOnrampProvider: (provider: Provider) => boolean;
@@ -0,0 +1,5 @@
1
+ import { ONRAMP_PROVIDERS } from '../../constants/onrampProviders.js';
2
+
3
+ const isOnrampProvider = (provider) => ONRAMP_PROVIDERS.includes(provider.provider);
4
+
5
+ export { isOnrampProvider };
@@ -56,6 +56,9 @@ const useConnectAndSign = () => {
56
56
  }
57
57
  }
58
58
  const publicWalletAddress = yield connectWallet(walletConnector, fetchPublicAddressOpts);
59
+ if (!publicWalletAddress) {
60
+ return;
61
+ }
59
62
  const walletNetwork = yield walletConnector.getNetwork();
60
63
  const usesSupportedNetwork = isSupportedNetwork.isSupportedNetwork({
61
64
  network: walletNetwork,
@@ -52,6 +52,9 @@ const useConnectAndSign = () => {
52
52
  }
53
53
  }
54
54
  const publicWalletAddress = yield connectWallet(walletConnector, fetchPublicAddressOpts);
55
+ if (!publicWalletAddress) {
56
+ return;
57
+ }
55
58
  const walletNetwork = yield walletConnector.getNetwork();
56
59
  const usesSupportedNetwork = isSupportedNetwork({
57
60
  network: walletNetwork,
@@ -77,6 +77,9 @@ const useConnectAndSignSplitSteps = () => {
77
77
  ongoingVerifications.setAuthVerification(true);
78
78
  try {
79
79
  const publicWalletAddress = yield connectWallet(walletConnector, fetchPublicAddressOpts);
80
+ if (!publicWalletAddress) {
81
+ return;
82
+ }
80
83
  yield verifyWallet({
81
84
  captchaToken,
82
85
  publicWalletAddress,
@@ -73,6 +73,9 @@ const useConnectAndSignSplitSteps = () => {
73
73
  ongoingVerifications.setAuthVerification(true);
74
74
  try {
75
75
  const publicWalletAddress = yield connectWallet(walletConnector, fetchPublicAddressOpts);
76
+ if (!publicWalletAddress) {
77
+ return;
78
+ }
76
79
  yield verifyWallet({
77
80
  captchaToken,
78
81
  publicWalletAddress,
@@ -43,6 +43,9 @@ const useSignConnectOnlyUser = () => {
43
43
  // Wallet should be already connected at this point
44
44
  // We just need to verify it
45
45
  const publicWalletAddress = yield connectWallet(walletConnector, fetchPublicAddressOpts);
46
+ if (!publicWalletAddress) {
47
+ return;
48
+ }
46
49
  yield verifyWallet({
47
50
  publicWalletAddress,
48
51
  walletConnector,
@@ -39,6 +39,9 @@ const useSignConnectOnlyUser = () => {
39
39
  // Wallet should be already connected at this point
40
40
  // We just need to verify it
41
41
  const publicWalletAddress = yield connectWallet(walletConnector, fetchPublicAddressOpts);
42
+ if (!publicWalletAddress) {
43
+ return;
44
+ }
42
45
  yield verifyWallet({
43
46
  publicWalletAddress,
44
47
  walletConnector,
@@ -72,7 +72,8 @@ const useSyncPrimaryWallet = ({ connectWallet, computeConnectedStateForWallets,
72
72
  return;
73
73
  primaryWallet.connector
74
74
  .getConnectedAccounts()
75
- .then(([connectedAddress]) => {
75
+ .then((accounts) => {
76
+ const [connectedAddress] = accounts;
76
77
  if (walletConnectorCore.isSameAddress(connectedAddress, primaryWallet.address, primaryWallet.chain)) {
77
78
  return;
78
79
  }
@@ -4,7 +4,7 @@ import { AuthModeType, MultiWalletWidgetState, Wallet } from '../../../../shared
4
4
  import { MultiWalletWidgetStateSetter } from '../useMultiWalletWidgetState';
5
5
  export type UseSyncPrimaryWalletArgs = {
6
6
  canSync?: boolean;
7
- connectWallet: (walletConnector: WalletConnector, fetchPublicAddressOpts?: FetchPublicAddressOpts) => Promise<string>;
7
+ connectWallet: (walletConnector: WalletConnector, fetchPublicAddressOpts?: FetchPublicAddressOpts) => Promise<string | undefined>;
8
8
  computeConnectedStateForWallets: () => Promise<void>;
9
9
  handleLogOut: () => Promise<void>;
10
10
  multiWalletWidgetState: MultiWalletWidgetState;
@@ -68,7 +68,8 @@ const useSyncPrimaryWallet = ({ connectWallet, computeConnectedStateForWallets,
68
68
  return;
69
69
  primaryWallet.connector
70
70
  .getConnectedAccounts()
71
- .then(([connectedAddress]) => {
71
+ .then((accounts) => {
72
+ const [connectedAddress] = accounts;
72
73
  if (isSameAddress(connectedAddress, primaryWallet.address, primaryWallet.chain)) {
73
74
  return;
74
75
  }
@@ -23,7 +23,7 @@ var api = require('../../../data/api.cjs');
23
23
  require('@dynamic-labs/multi-wallet');
24
24
  var shouldManuallyReconnectOnRefresh = require('../../functions/shouldManuallyReconnectOnRefresh/shouldManuallyReconnectOnRefresh.cjs');
25
25
 
26
- const useConnectWallet = ({ authMode, clearPrimaryWalletId, enableVisitTrackingOnConnectOnly, environmentId, primaryWalletId, setPrimaryWalletId, wallets, onUnlink, }) => {
26
+ const useConnectWallet = ({ authMode, clearPrimaryWalletId, enableVisitTrackingOnConnectOnly, environmentId, primaryWalletId, setPrimaryWalletId, wallets, onUnlink, onBeforeConnectSuccessConfirmation, setShowAuthFlow, }) => {
27
27
  const [connectedWalletsInfo, setConnectedWalletsInfo, removeConnectedWalletsInfo,] = useLocalStorage.useLocalStorage(localStorage.CONNECTED_WALLETS_INFO, []);
28
28
  const [connectedWallets, setConnectedWallets] = React.useState([]);
29
29
  // The function to update and define the connectedWallets list.
@@ -126,6 +126,14 @@ const useConnectWallet = ({ authMode, clearPrimaryWalletId, enableVisitTrackingO
126
126
  error.code = 'missing-public-address';
127
127
  throw error;
128
128
  }
129
+ if (onBeforeConnectSuccessConfirmation) {
130
+ const shouldProceedWithConnection = yield onBeforeConnectSuccessConfirmation(publicWalletAddress);
131
+ if (!shouldProceedWithConnection) {
132
+ walletConnectorCore.logger.info('Connection was not established because onBeforeConnectSuccessConfirmation returned false');
133
+ setShowAuthFlow(false);
134
+ return;
135
+ }
136
+ }
129
137
  const walletId = `connect-wallet-${getNextIdAvailable(connectedWalletsInfo)}`;
130
138
  if (!primaryWalletId) {
131
139
  setPrimaryWalletId(walletId);
@@ -1,5 +1,6 @@
1
+ import { Dispatch, SetStateAction } from 'react';
1
2
  import { Chain, FetchPublicAddressOpts, WalletConnector } from '@dynamic-labs/wallet-connector-core';
2
- import { AuthModeType, Wallet, WalletOption } from '../../../shared';
3
+ import { AuthModeType, OnBeforeConnectSuccessConfirmation, Wallet, WalletOption } from '../../../shared';
3
4
  export type ConnectedWalletConnectorType = {
4
5
  id: string;
5
6
  walletChain?: Chain;
@@ -16,9 +17,11 @@ type Props = {
16
17
  setPrimaryWalletId: (walletId: string) => void;
17
18
  wallets: WalletOption[];
18
19
  onUnlink?: (walletId: string, connectedWalletsInfo: ConnectedWalletConnectorType[]) => void;
20
+ onBeforeConnectSuccessConfirmation: OnBeforeConnectSuccessConfirmation | undefined;
21
+ setShowAuthFlow: Dispatch<SetStateAction<boolean>>;
19
22
  };
20
- export declare const useConnectWallet: ({ authMode, clearPrimaryWalletId, enableVisitTrackingOnConnectOnly, environmentId, primaryWalletId, setPrimaryWalletId, wallets, onUnlink, }: Props) => {
21
- connectWallet: (walletConnector: WalletConnector, fetchPublicAddressOpts?: FetchPublicAddressOpts) => Promise<string>;
23
+ export declare const useConnectWallet: ({ authMode, clearPrimaryWalletId, enableVisitTrackingOnConnectOnly, environmentId, primaryWalletId, setPrimaryWalletId, wallets, onUnlink, onBeforeConnectSuccessConfirmation, setShowAuthFlow, }: Props) => {
24
+ connectWallet: (walletConnector: WalletConnector, fetchPublicAddressOpts?: FetchPublicAddressOpts) => Promise<string | undefined>;
22
25
  connectedWallet: Wallet;
23
26
  connectedWallets: Wallet[];
24
27
  connectedWalletsInfo: ConnectedWalletConnectorType[] | [];
@@ -19,7 +19,7 @@ import { createVisit } from '../../../data/api.js';
19
19
  import '@dynamic-labs/multi-wallet';
20
20
  import { shouldManuallyReconnectOnRefresh } from '../../functions/shouldManuallyReconnectOnRefresh/shouldManuallyReconnectOnRefresh.js';
21
21
 
22
- const useConnectWallet = ({ authMode, clearPrimaryWalletId, enableVisitTrackingOnConnectOnly, environmentId, primaryWalletId, setPrimaryWalletId, wallets, onUnlink, }) => {
22
+ const useConnectWallet = ({ authMode, clearPrimaryWalletId, enableVisitTrackingOnConnectOnly, environmentId, primaryWalletId, setPrimaryWalletId, wallets, onUnlink, onBeforeConnectSuccessConfirmation, setShowAuthFlow, }) => {
23
23
  const [connectedWalletsInfo, setConnectedWalletsInfo, removeConnectedWalletsInfo,] = useLocalStorage(CONNECTED_WALLETS_INFO, []);
24
24
  const [connectedWallets, setConnectedWallets] = useState([]);
25
25
  // The function to update and define the connectedWallets list.
@@ -122,6 +122,14 @@ const useConnectWallet = ({ authMode, clearPrimaryWalletId, enableVisitTrackingO
122
122
  error.code = 'missing-public-address';
123
123
  throw error;
124
124
  }
125
+ if (onBeforeConnectSuccessConfirmation) {
126
+ const shouldProceedWithConnection = yield onBeforeConnectSuccessConfirmation(publicWalletAddress);
127
+ if (!shouldProceedWithConnection) {
128
+ logger.info('Connection was not established because onBeforeConnectSuccessConfirmation returned false');
129
+ setShowAuthFlow(false);
130
+ return;
131
+ }
132
+ }
125
133
  const walletId = `connect-wallet-${getNextIdAvailable(connectedWalletsInfo)}`;
126
134
  if (!primaryWalletId) {
127
135
  setPrimaryWalletId(walletId);
@@ -44,7 +44,7 @@ const useFetchProjectSettings = ({ authToken, environmentId, maxRetries = 2, dyn
44
44
  environmentId &&
45
45
  retries < maxRetries) {
46
46
  setLoading(true);
47
- api.sendDynamicProps(environmentId, dynamicContextProps);
47
+ api.sendDynamicProps(environmentId, { dynamicContextProps });
48
48
  api.fetchProjectSettings(environmentId)
49
49
  .then((response) => {
50
50
  if (!response)
@@ -40,7 +40,7 @@ const useFetchProjectSettings = ({ authToken, environmentId, maxRetries = 2, dyn
40
40
  environmentId &&
41
41
  retries < maxRetries) {
42
42
  setLoading(true);
43
- sendDynamicProps(environmentId, dynamicContextProps);
43
+ sendDynamicProps(environmentId, { dynamicContextProps });
44
44
  fetchProjectSettings(environmentId)
45
45
  .then((response) => {
46
46
  if (!response)
@@ -21,7 +21,7 @@ var useWalletsConnectionState = require('../useWalletsConnectionState/useWallets
21
21
  var createLinkedWalletsFromWalletOptions = require('./utils/createLinkedWalletsFromWalletOptions/createLinkedWalletsFromWalletOptions.cjs');
22
22
  var reconnectSocialWallet = require('./reconnectSocialWallet.cjs');
23
23
 
24
- const useWalletConnectors = ({ authMode, authToken, connectedWallets, wallets: availableWallets, multiWalletWidgetState, setDesktopUri, setMultiWalletWidgetState, setQrcodeUri, primaryWalletId, setPrimaryWalletId, user, }) => {
24
+ const useWalletConnectors = ({ authMode, authToken, connectedWallets, wallets: availableWallets, multiWalletWidgetState, setDesktopUri, setMultiWalletWidgetState, setQrcodeUri, primaryWalletId, setPrimaryWalletId, user, onboardingOnlyJwt, }) => {
25
25
  const [showQrcodeModal, setShowQrcodeModal] = React.useState(false);
26
26
  const linkedWallets = React.useMemo(() => {
27
27
  if (!authToken) {
@@ -38,11 +38,12 @@ const useWalletConnectors = ({ authMode, authToken, connectedWallets, wallets: a
38
38
  // This is because we want the first connected wallet to have events applied by useWalletEventListeners
39
39
  // In connect-and-sign mode, events are only applied after the message is signed.
40
40
  // This change ensures that events will be applied even before the signature.
41
- if (authMode === 'connect-and-sign' && user) {
41
+ // After signing the message user could be undefined in scenarios like OTP
42
+ if (authMode === 'connect-and-sign' && (user || onboardingOnlyJwt)) {
42
43
  return linkedWallets;
43
44
  }
44
45
  return connectedWallets;
45
- }, [authMode, connectedWallets, linkedWallets, user]);
46
+ }, [authMode, connectedWallets, linkedWallets, user, onboardingOnlyJwt]);
46
47
  const { connectedWalletMap, computeConnectedStateForWallets, didConnectedStateLoad, } = useWalletsConnectionState.useWalletsConnectionState(walletsBasedOnAuthMode);
47
48
  const wallets = React.useMemo(() => walletsBasedOnAuthMode.map((wallet) => (Object.assign(Object.assign({}, wallet), { connected: Boolean(connectedWalletMap[wallet.id]) }))), [connectedWalletMap, walletsBasedOnAuthMode]);
48
49
  React.useEffect(() => {
@@ -14,6 +14,7 @@ type Props = {
14
14
  setPrimaryWalletId: (walletId: string) => void;
15
15
  primaryWalletId: string | undefined;
16
16
  user?: UserProfile;
17
+ onboardingOnlyJwt?: string;
17
18
  };
18
19
  export interface UseWalletConnectors {
19
20
  computeConnectedStateForWallets: () => Promise<void>;
@@ -28,5 +29,5 @@ export interface UseWalletConnectors {
28
29
  walletConnectors: WalletConnector[];
29
30
  wallets: Wallet[];
30
31
  }
31
- export declare const useWalletConnectors: ({ authMode, authToken, connectedWallets, wallets: availableWallets, multiWalletWidgetState, setDesktopUri, setMultiWalletWidgetState, setQrcodeUri, primaryWalletId, setPrimaryWalletId, user, }: Props) => UseWalletConnectors;
32
+ export declare const useWalletConnectors: ({ authMode, authToken, connectedWallets, wallets: availableWallets, multiWalletWidgetState, setDesktopUri, setMultiWalletWidgetState, setQrcodeUri, primaryWalletId, setPrimaryWalletId, user, onboardingOnlyJwt, }: Props) => UseWalletConnectors;
32
33
  export {};
@@ -17,7 +17,7 @@ import { useWalletsConnectionState } from '../useWalletsConnectionState/useWalle
17
17
  import { createLinkedWalletsFromWalletOptions } from './utils/createLinkedWalletsFromWalletOptions/createLinkedWalletsFromWalletOptions.js';
18
18
  import { reconnectSocialWallet } from './reconnectSocialWallet.js';
19
19
 
20
- const useWalletConnectors = ({ authMode, authToken, connectedWallets, wallets: availableWallets, multiWalletWidgetState, setDesktopUri, setMultiWalletWidgetState, setQrcodeUri, primaryWalletId, setPrimaryWalletId, user, }) => {
20
+ const useWalletConnectors = ({ authMode, authToken, connectedWallets, wallets: availableWallets, multiWalletWidgetState, setDesktopUri, setMultiWalletWidgetState, setQrcodeUri, primaryWalletId, setPrimaryWalletId, user, onboardingOnlyJwt, }) => {
21
21
  const [showQrcodeModal, setShowQrcodeModal] = useState(false);
22
22
  const linkedWallets = useMemo(() => {
23
23
  if (!authToken) {
@@ -34,11 +34,12 @@ const useWalletConnectors = ({ authMode, authToken, connectedWallets, wallets: a
34
34
  // This is because we want the first connected wallet to have events applied by useWalletEventListeners
35
35
  // In connect-and-sign mode, events are only applied after the message is signed.
36
36
  // This change ensures that events will be applied even before the signature.
37
- if (authMode === 'connect-and-sign' && user) {
37
+ // After signing the message user could be undefined in scenarios like OTP
38
+ if (authMode === 'connect-and-sign' && (user || onboardingOnlyJwt)) {
38
39
  return linkedWallets;
39
40
  }
40
41
  return connectedWallets;
41
- }, [authMode, connectedWallets, linkedWallets, user]);
42
+ }, [authMode, connectedWallets, linkedWallets, user, onboardingOnlyJwt]);
42
43
  const { connectedWalletMap, computeConnectedStateForWallets, didConnectedStateLoad, } = useWalletsConnectionState(walletsBasedOnAuthMode);
43
44
  const wallets = useMemo(() => walletsBasedOnAuthMode.map((wallet) => (Object.assign(Object.assign({}, wallet), { connected: Boolean(connectedWalletMap[wallet.id]) }))), [connectedWalletMap, walletsBasedOnAuthMode]);
44
45
  useEffect(() => {
@@ -104,6 +104,9 @@ const WalletUsedView = () => {
104
104
  // TODO refactor this block
105
105
  try {
106
106
  const publicWalletAddress = yield connectWallet(walletConnector);
107
+ if (!publicWalletAddress) {
108
+ return;
109
+ }
107
110
  const walletProvider = getWalletProvider.getWalletProvider(walletConnector);
108
111
  const verifyArgs = yield getVerifyArgs.getVerifyArgs({
109
112
  displayTermsOfService,
@@ -100,6 +100,9 @@ const WalletUsedView = () => {
100
100
  // TODO refactor this block
101
101
  try {
102
102
  const publicWalletAddress = yield connectWallet(walletConnector);
103
+ if (!publicWalletAddress) {
104
+ return;
105
+ }
103
106
  const walletProvider = getWalletProvider(walletConnector);
104
107
  const verifyArgs = yield getVerifyArgs({
105
108
  displayTermsOfService,
@@ -55,7 +55,7 @@ const DynamicWidgetWallets = () => {
55
55
  'dynamic-widget-wallets__body--apply-height': !isEmpty,
56
56
  }) }, { children: isEmpty ? (jsxRuntime.jsx(EmptyWallets.EmptyWallets, {})) : (jsxRuntime.jsx("div", Object.assign({ className: 'available-wallets__wallet-list' }, { children: secondaryWallets.map((wallet, index) => {
57
57
  var _a;
58
- return (jsxRuntime.jsx(Wallet.Wallet, { ens: (_a = getWalletVerifiedCredential.getWalletVerifiedCredential(wallet.address, user === null || user === void 0 ? void 0 : user.verifiedCredentials)) === null || _a === void 0 ? void 0 : _a.nameService, wallet: wallet }, wallet.id));
58
+ return (jsxRuntime.jsx(Wallet.Wallet, { ens: (_a = getWalletVerifiedCredential.getWalletVerifiedCredential(wallet.address, user === null || user === void 0 ? void 0 : user.verifiedCredentials, wallet.chain)) === null || _a === void 0 ? void 0 : _a.nameService, wallet: wallet }, wallet.id));
59
59
  }) }))) }))] })));
60
60
  };
61
61
 
@@ -51,7 +51,7 @@ const DynamicWidgetWallets = () => {
51
51
  'dynamic-widget-wallets__body--apply-height': !isEmpty,
52
52
  }) }, { children: isEmpty ? (jsx(EmptyWallets, {})) : (jsx("div", Object.assign({ className: 'available-wallets__wallet-list' }, { children: secondaryWallets.map((wallet, index) => {
53
53
  var _a;
54
- return (jsx(Wallet, { ens: (_a = getWalletVerifiedCredential(wallet.address, user === null || user === void 0 ? void 0 : user.verifiedCredentials)) === null || _a === void 0 ? void 0 : _a.nameService, wallet: wallet }, wallet.id));
54
+ return (jsx(Wallet, { ens: (_a = getWalletVerifiedCredential(wallet.address, user === null || user === void 0 ? void 0 : user.verifiedCredentials, wallet.chain)) === null || _a === void 0 ? void 0 : _a.nameService, wallet: wallet }, wallet.id));
55
55
  }) }))) }))] })));
56
56
  };
57
57