@dynamic-labs/sdk-react-core 0.17.32 → 0.17.34

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,4 +1,19 @@
1
1
 
2
+ ### [0.17.34](https://github.com/dynamic-labs/DynamicAuth/compare/v0.17.33...v0.17.34) (2023-08-14)
3
+
4
+
5
+ ### Bug Fixes
6
+
7
+ * fix the captcha step with embedded wallets ([#2967](https://github.com/dynamic-labs/DynamicAuth/issues/2967)) ([#2984](https://github.com/dynamic-labs/DynamicAuth/issues/2984)) ([637effe](https://github.com/dynamic-labs/DynamicAuth/commit/637effe5e7c1f19d378924a3aad3f0a02b03bd8e))
8
+
9
+ ### [0.17.33](https://github.com/dynamic-labs/DynamicAuth/compare/v0.17.32...v0.17.33) (2023-08-11)
10
+
11
+
12
+ ### Bug Fixes
13
+
14
+ * **networks:** merge custom network after API networks ([04d4158](https://github.com/dynamic-labs/DynamicAuth/commit/04d41584f71d384eb59b3327b106219de5b10719))
15
+ * **QNTM-249:** broken email update when user is authenticated ([#2934](https://github.com/dynamic-labs/DynamicAuth/issues/2934)) ([b8c4149](https://github.com/dynamic-labs/DynamicAuth/commit/b8c4149fbc8d17f599ac4ddf9ed8d578ecc96e8b))
16
+
2
17
  ### [0.17.32](https://github.com/dynamic-labs/DynamicAuth/compare/v0.17.31...v0.17.32) (2023-08-09)
3
18
 
4
19
 
package/package.cjs CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var version = "0.17.32";
5
+ var version = "0.17.34";
6
6
  var dependencies = {
7
7
  "react-focus-lock": "2.9.2",
8
8
  "@dynamic-labs/iconic": "0.1.23",
package/package.js CHANGED
@@ -1,4 +1,4 @@
1
- var version = "0.17.32";
1
+ var version = "0.17.34";
2
2
  var dependencies = {
3
3
  "react-focus-lock": "2.9.2",
4
4
  "@dynamic-labs/iconic": "0.1.23",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dynamic-labs/sdk-react-core",
3
- "version": "0.17.32",
3
+ "version": "0.17.34",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "https://github.com/dynamic-labs/DynamicAuth.git",
@@ -16,13 +16,13 @@
16
16
  "formik": "2.2.9",
17
17
  "qrcode": "1.5.1",
18
18
  "ethers": "5.7.2",
19
- "@dynamic-labs/logger": "0.17.32",
20
- "@dynamic-labs/multi-wallet": "0.17.32",
21
- "@dynamic-labs/rpc-providers": "0.17.32",
22
- "@dynamic-labs/types": "0.17.32",
23
- "@dynamic-labs/utils": "0.17.32",
24
- "@dynamic-labs/wallet-book": "0.17.32",
25
- "@dynamic-labs/wallet-connector-core": "0.17.32"
19
+ "@dynamic-labs/logger": "0.17.34",
20
+ "@dynamic-labs/multi-wallet": "0.17.34",
21
+ "@dynamic-labs/rpc-providers": "0.17.34",
22
+ "@dynamic-labs/types": "0.17.34",
23
+ "@dynamic-labs/utils": "0.17.34",
24
+ "@dynamic-labs/wallet-book": "0.17.34",
25
+ "@dynamic-labs/wallet-connector-core": "0.17.34"
26
26
  },
27
27
  "devDependencies": {
28
28
  "semver": "7.3.8"
@@ -19,6 +19,7 @@ require('ethers');
19
19
  var useLocalStorage = require('../../../shared/utils/hooks/useLocalStorage/useLocalStorage.cjs');
20
20
  require('../../../shared/consts/index.cjs');
21
21
  var validators = require('../../../context/DynamicContext/validators.cjs');
22
+ var mergeCustomerEvmNetworksWithServerNetworks = require('./utils/mergeCustomerEvmNetworksWithServerNetworks/mergeCustomerEvmNetworksWithServerNetworks.cjs');
22
23
 
23
24
  const MAX_RETRIES = 2;
24
25
  const useFetchNetworkConfigurations = ({ authToken, environmentId, evmNetworks: customerEvmNetworks, maxRetries = MAX_RETRIES, }) => {
@@ -113,13 +114,7 @@ const useFetchNetworkConfigurations = ({ authToken, environmentId, evmNetworks:
113
114
  serverNetworks.length &&
114
115
  customerEvmNetworks !== undefined &&
115
116
  customerEvmNetworks.length) {
116
- mergedEvmNetworks = customerEvmNetworks.slice();
117
- serverNetworks.forEach((network) => {
118
- const existingNetwork = mergedEvmNetworks === null || mergedEvmNetworks === void 0 ? void 0 : mergedEvmNetworks.find((item) => item.chainId === network.chainId);
119
- if (!existingNetwork) {
120
- mergedEvmNetworks === null || mergedEvmNetworks === void 0 ? void 0 : mergedEvmNetworks.push(network);
121
- }
122
- });
117
+ mergedEvmNetworks = mergeCustomerEvmNetworksWithServerNetworks.mergeCustomerEvmNetworksWithServerNetworks(customerEvmNetworks, serverNetworks);
123
118
  }
124
119
  setLsNetworks({
125
120
  configurations: {
@@ -15,6 +15,7 @@ import 'ethers';
15
15
  import { useLocalStorage } from '../../../shared/utils/hooks/useLocalStorage/useLocalStorage.js';
16
16
  import '../../../shared/consts/index.js';
17
17
  import { validateLocalStorageExpiry } from '../../../context/DynamicContext/validators.js';
18
+ import { mergeCustomerEvmNetworksWithServerNetworks } from './utils/mergeCustomerEvmNetworksWithServerNetworks/mergeCustomerEvmNetworksWithServerNetworks.js';
18
19
 
19
20
  const MAX_RETRIES = 2;
20
21
  const useFetchNetworkConfigurations = ({ authToken, environmentId, evmNetworks: customerEvmNetworks, maxRetries = MAX_RETRIES, }) => {
@@ -109,13 +110,7 @@ const useFetchNetworkConfigurations = ({ authToken, environmentId, evmNetworks:
109
110
  serverNetworks.length &&
110
111
  customerEvmNetworks !== undefined &&
111
112
  customerEvmNetworks.length) {
112
- mergedEvmNetworks = customerEvmNetworks.slice();
113
- serverNetworks.forEach((network) => {
114
- const existingNetwork = mergedEvmNetworks === null || mergedEvmNetworks === void 0 ? void 0 : mergedEvmNetworks.find((item) => item.chainId === network.chainId);
115
- if (!existingNetwork) {
116
- mergedEvmNetworks === null || mergedEvmNetworks === void 0 ? void 0 : mergedEvmNetworks.push(network);
117
- }
118
- });
113
+ mergedEvmNetworks = mergeCustomerEvmNetworksWithServerNetworks(customerEvmNetworks, serverNetworks);
119
114
  }
120
115
  setLsNetworks({
121
116
  configurations: {
@@ -0,0 +1 @@
1
+ export * from './mergeCustomerEvmNetworksWithServerNetworks';
@@ -0,0 +1 @@
1
+ export { mergeCustomerEvmNetworksWithServerNetworks } from './mergeCustomerEvmNetworksWithServerNetworks';
@@ -0,0 +1,16 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ const mergeCustomerEvmNetworksWithServerNetworks = (customerEvmNetworks, serverNetworks) => {
6
+ const evmNetworks = [...customerEvmNetworks];
7
+ serverNetworks.forEach((network) => {
8
+ const existingNetwork = evmNetworks === null || evmNetworks === void 0 ? void 0 : evmNetworks.find((item) => item.chainId === network.chainId);
9
+ if (!existingNetwork) {
10
+ evmNetworks === null || evmNetworks === void 0 ? void 0 : evmNetworks.unshift(network);
11
+ }
12
+ });
13
+ return evmNetworks;
14
+ };
15
+
16
+ exports.mergeCustomerEvmNetworksWithServerNetworks = mergeCustomerEvmNetworksWithServerNetworks;
@@ -0,0 +1,2 @@
1
+ import { GenericNetwork } from '@dynamic-labs/types';
2
+ export declare const mergeCustomerEvmNetworksWithServerNetworks: (customerEvmNetworks: GenericNetwork[], serverNetworks: GenericNetwork[]) => GenericNetwork[];
@@ -0,0 +1,12 @@
1
+ const mergeCustomerEvmNetworksWithServerNetworks = (customerEvmNetworks, serverNetworks) => {
2
+ const evmNetworks = [...customerEvmNetworks];
3
+ serverNetworks.forEach((network) => {
4
+ const existingNetwork = evmNetworks === null || evmNetworks === void 0 ? void 0 : evmNetworks.find((item) => item.chainId === network.chainId);
5
+ if (!existingNetwork) {
6
+ evmNetworks === null || evmNetworks === void 0 ? void 0 : evmNetworks.unshift(network);
7
+ }
8
+ });
9
+ return evmNetworks;
10
+ };
11
+
12
+ export { mergeCustomerEvmNetworksWithServerNetworks };
@@ -5,12 +5,12 @@ Object.defineProperty(exports, '__esModule', { value: true });
5
5
  var _tslib = require('../../../../_virtual/_tslib.cjs');
6
6
  var jsxRuntime = require('react/jsx-runtime');
7
7
  var iconic = require('@dynamic-labs/iconic');
8
+ var walletConnectorCore = require('@dynamic-labs/wallet-connector-core');
8
9
  require('react');
9
10
  var Typography = require('../../components/Typography/Typography.cjs');
10
11
  require('@dynamic-labs/sdk-api');
11
12
  require('../../shared/logger.cjs');
12
13
  require('../../config/LSSuffix.cjs');
13
- require('@dynamic-labs/wallet-connector-core');
14
14
  var ViewContext = require('../../context/ViewContext/ViewContext.cjs');
15
15
  require('@dynamic-labs/utils');
16
16
  require('../../utils/constants/colors.cjs');
@@ -45,7 +45,7 @@ require('../../components/MenuList/Dropdown/Dropdown.cjs');
45
45
  var Captcha = require('../../components/Captcha/Captcha.cjs');
46
46
 
47
47
  const CaptchaVerifyUser = () => {
48
- const { consumeNonce, displayTermsOfService, environmentId, projectSettings, setIsSingleWalletAccount, selectedWalletConnector: walletConnector, } = useInternalDynamicContext.useInternalDynamicContext();
48
+ const { consumeNonce, displayTermsOfService, environmentId, projectSettings, setIsSingleWalletAccount, selectedWalletConnector: walletConnector, disableWalletConfirmationOnce, } = useInternalDynamicContext.useInternalDynamicContext();
49
49
  const { setView } = ViewContext.useViewContext();
50
50
  const { setCaptchaToken } = CaptchaContext.useCaptchaContext();
51
51
  const verifyWallet = useVerifyWallet.useVerifyWallet({
@@ -63,7 +63,12 @@ const CaptchaVerifyUser = () => {
63
63
  if (!publicWalletAddress) {
64
64
  return;
65
65
  }
66
- setView('pending-signature');
66
+ if (!walletConnectorCore.isEmbeddedConnector(walletConnector)) {
67
+ setView('pending-signature');
68
+ }
69
+ else {
70
+ disableWalletConfirmationOnce();
71
+ }
67
72
  if (requiresTwoStepAuthentication.requiresTwoStepAuthentication(walletConnector)) {
68
73
  setCaptchaToken(captchaToken);
69
74
  return;
@@ -1,12 +1,12 @@
1
1
  import { __awaiter } from '../../../../_virtual/_tslib.js';
2
2
  import { jsxs, jsx } from 'react/jsx-runtime';
3
3
  import { CaptchaWaveIcon } from '@dynamic-labs/iconic';
4
+ import { isEmbeddedConnector } from '@dynamic-labs/wallet-connector-core';
4
5
  import 'react';
5
6
  import { Typography } from '../../components/Typography/Typography.js';
6
7
  import '@dynamic-labs/sdk-api';
7
8
  import '../../shared/logger.js';
8
9
  import '../../config/LSSuffix.js';
9
- import '@dynamic-labs/wallet-connector-core';
10
10
  import { useViewContext } from '../../context/ViewContext/ViewContext.js';
11
11
  import '@dynamic-labs/utils';
12
12
  import '../../utils/constants/colors.js';
@@ -41,7 +41,7 @@ import '../../components/MenuList/Dropdown/Dropdown.js';
41
41
  import { Captcha } from '../../components/Captcha/Captcha.js';
42
42
 
43
43
  const CaptchaVerifyUser = () => {
44
- const { consumeNonce, displayTermsOfService, environmentId, projectSettings, setIsSingleWalletAccount, selectedWalletConnector: walletConnector, } = useInternalDynamicContext();
44
+ const { consumeNonce, displayTermsOfService, environmentId, projectSettings, setIsSingleWalletAccount, selectedWalletConnector: walletConnector, disableWalletConfirmationOnce, } = useInternalDynamicContext();
45
45
  const { setView } = useViewContext();
46
46
  const { setCaptchaToken } = useCaptchaContext();
47
47
  const verifyWallet = useVerifyWallet({
@@ -59,7 +59,12 @@ const CaptchaVerifyUser = () => {
59
59
  if (!publicWalletAddress) {
60
60
  return;
61
61
  }
62
- setView('pending-signature');
62
+ if (!isEmbeddedConnector(walletConnector)) {
63
+ setView('pending-signature');
64
+ }
65
+ else {
66
+ disableWalletConfirmationOnce();
67
+ }
63
68
  if (requiresTwoStepAuthentication(walletConnector)) {
64
69
  setCaptchaToken(captchaToken);
65
70
  return;
@@ -52,18 +52,21 @@ const EmailUpdate = () => {
52
52
  const { loading, setLoading } = LoadingContext.useLoadingContext();
53
53
  const { setView, goToInitialView } = ViewContext.useViewContext();
54
54
  const { email, setEmail, setVerificationUUID } = EmailVerificationContext.useEmailVerificationContext();
55
- const { environmentId, handleLogOut, onboardingOnlyJwt } = useInternalDynamicContext.useInternalDynamicContext();
55
+ const { environmentId, handleLogOut, onboardingOnlyJwt, authToken } = useInternalDynamicContext.useInternalDynamicContext();
56
56
  const handleBackClick = () => {
57
57
  setView('verify-email');
58
58
  setError(undefined);
59
59
  };
60
+ // If user tries to update an email for logged user there is already an authToken and onboardingOnlyJwt is undefined
61
+ // If user tries to update the email in the authFlow, authToken is undefined and onboardingOnlyJwt is defined
62
+ const jwtToken = authToken || onboardingOnlyJwt;
60
63
  const handleEmailUpdate = () => _tslib.__awaiter(void 0, void 0, void 0, function* () {
61
64
  try {
62
65
  if (!updatedEmail) {
63
66
  return;
64
67
  }
65
68
  setLoading(true);
66
- const { emailVerification } = yield api.updateUserProfileFields(onboardingOnlyJwt, environmentId, { email: updatedEmail });
69
+ const { emailVerification } = yield api.updateUserProfileFields(jwtToken, environmentId, { email: updatedEmail });
67
70
  if (!emailVerification) {
68
71
  yield handleLogOut();
69
72
  goToInitialView();
@@ -48,18 +48,21 @@ const EmailUpdate = () => {
48
48
  const { loading, setLoading } = useLoadingContext();
49
49
  const { setView, goToInitialView } = useViewContext();
50
50
  const { email, setEmail, setVerificationUUID } = useEmailVerificationContext();
51
- const { environmentId, handleLogOut, onboardingOnlyJwt } = useInternalDynamicContext();
51
+ const { environmentId, handleLogOut, onboardingOnlyJwt, authToken } = useInternalDynamicContext();
52
52
  const handleBackClick = () => {
53
53
  setView('verify-email');
54
54
  setError(undefined);
55
55
  };
56
+ // If user tries to update an email for logged user there is already an authToken and onboardingOnlyJwt is undefined
57
+ // If user tries to update the email in the authFlow, authToken is undefined and onboardingOnlyJwt is defined
58
+ const jwtToken = authToken || onboardingOnlyJwt;
56
59
  const handleEmailUpdate = () => __awaiter(void 0, void 0, void 0, function* () {
57
60
  try {
58
61
  if (!updatedEmail) {
59
62
  return;
60
63
  }
61
64
  setLoading(true);
62
- const { emailVerification } = yield updateUserProfileFields(onboardingOnlyJwt, environmentId, { email: updatedEmail });
65
+ const { emailVerification } = yield updateUserProfileFields(jwtToken, environmentId, { email: updatedEmail });
63
66
  if (!emailVerification) {
64
67
  yield handleLogOut();
65
68
  goToInitialView();