@dynamic-labs/sdk-react-core 0.19.0-alpha.15 → 0.19.0-alpha.17

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 (87) hide show
  1. package/CHANGELOG.md +31 -0
  2. package/package.cjs +2 -2
  3. package/package.js +2 -2
  4. package/package.json +9 -9
  5. package/src/lib/components/SendBalanceForm/SendBalanceForm.cjs +46 -26
  6. package/src/lib/components/SendBalanceForm/SendBalanceForm.d.ts +1 -0
  7. package/src/lib/components/SendBalanceForm/SendBalanceForm.js +46 -26
  8. package/src/lib/components/SendBalancePageLayout/SendBalancePageLayout.cjs +2 -2
  9. package/src/lib/components/SendBalancePageLayout/SendBalancePageLayout.d.ts +1 -0
  10. package/src/lib/components/SendBalancePageLayout/SendBalancePageLayout.js +2 -2
  11. package/src/lib/components/SyncPasskeyFlow/SyncPasskeyFlow.cjs +4 -3
  12. package/src/lib/components/SyncPasskeyFlow/SyncPasskeyFlow.js +4 -3
  13. package/src/lib/components/TransactionConfirmationPageLayout/TransactionConfirmationPageLayout.cjs +1 -1
  14. package/src/lib/components/TransactionConfirmationPageLayout/TransactionConfirmationPageLayout.js +1 -1
  15. package/src/lib/context/DynamicContext/DynamicContext.cjs +20 -7
  16. package/src/lib/context/DynamicContext/DynamicContext.js +20 -7
  17. package/src/lib/context/DynamicContext/handleDisconnectWallet/handleDisconnectWallet.cjs +34 -0
  18. package/src/lib/context/DynamicContext/handleDisconnectWallet/handleDisconnectWallet.d.ts +13 -0
  19. package/src/lib/context/DynamicContext/handleDisconnectWallet/handleDisconnectWallet.js +30 -0
  20. package/src/lib/context/DynamicContext/handleDisconnectWallet/index.d.ts +1 -0
  21. package/src/lib/context/DynamicContext/useCustomerCallbacks/types.d.ts +5 -2
  22. package/src/lib/context/DynamicContext/useCustomerCallbacks/useCustomerCallbacks.cjs +11 -2
  23. package/src/lib/context/DynamicContext/useCustomerCallbacks/useCustomerCallbacks.d.ts +1 -1
  24. package/src/lib/context/DynamicContext/useCustomerCallbacks/useCustomerCallbacks.js +11 -2
  25. package/src/lib/context/ViewContext/ViewContext.d.ts +1 -1
  26. package/src/lib/locale/en/translation.cjs +0 -7
  27. package/src/lib/locale/en/translation.js +1 -7
  28. package/src/lib/shared/types/index.d.ts +6 -0
  29. package/src/lib/shared/utils/functions/getWalletListItemLabel/getWalletListItemLabel.cjs +4 -3
  30. package/src/lib/shared/utils/functions/getWalletListItemLabel/getWalletListItemLabel.js +4 -3
  31. package/src/lib/styles/index.shadow.cjs +1 -1
  32. package/src/lib/styles/index.shadow.js +1 -1
  33. package/src/lib/utils/functions/getOrdinalNumber/getOrdinalNumber.cjs +21 -0
  34. package/src/lib/utils/functions/getOrdinalNumber/getOrdinalNumber.d.ts +1 -0
  35. package/src/lib/utils/functions/getOrdinalNumber/getOrdinalNumber.js +17 -0
  36. package/src/lib/utils/functions/getOrdinalNumber/index.d.ts +1 -0
  37. package/src/lib/utils/functions/index.d.ts +2 -1
  38. package/src/lib/utils/functions/isTestnet/isTestnet.cjs +1 -1
  39. package/src/lib/utils/functions/isTestnet/isTestnet.js +1 -1
  40. package/src/lib/utils/functions/isTurnkeyEnabled/index.d.ts +1 -0
  41. package/src/lib/utils/functions/isTurnkeyEnabled/isTurnkeyEnabled.cjs +10 -0
  42. package/src/lib/utils/functions/isTurnkeyEnabled/isTurnkeyEnabled.d.ts +2 -0
  43. package/src/lib/utils/functions/isTurnkeyEnabled/isTurnkeyEnabled.js +6 -0
  44. package/src/lib/utils/functions/sendTransactionWithAutoNonce/sendTransactionWithAutoNonce.cjs +1 -1
  45. package/src/lib/utils/functions/sendTransactionWithAutoNonce/sendTransactionWithAutoNonce.js +1 -1
  46. package/src/lib/utils/functions/walletListBuilder/utils/groupWalletOptions/groupWalletOptions.cjs +6 -2
  47. package/src/lib/utils/functions/walletListBuilder/utils/groupWalletOptions/groupWalletOptions.js +6 -2
  48. package/src/lib/utils/hooks/authenticationHooks/useConnectAndSign/useConnectAndSign.cjs +1 -1
  49. package/src/lib/utils/hooks/authenticationHooks/useConnectAndSign/useConnectAndSign.js +1 -1
  50. package/src/lib/utils/hooks/authenticationHooks/useConnectAndSignSplitSteps/useConnectAndSignSplitSteps.cjs +1 -1
  51. package/src/lib/utils/hooks/authenticationHooks/useConnectAndSignSplitSteps/useConnectAndSignSplitSteps.js +1 -1
  52. package/src/lib/utils/hooks/useAuthLayoutChecks/useAuthLayoutChecks.cjs +0 -1
  53. package/src/lib/utils/hooks/useAuthLayoutChecks/useAuthLayoutChecks.js +0 -1
  54. package/src/lib/utils/hooks/useConnectWallet/useConnectWallet.cjs +5 -2
  55. package/src/lib/utils/hooks/useConnectWallet/useConnectWallet.d.ts +5 -4
  56. package/src/lib/utils/hooks/useConnectWallet/useConnectWallet.js +5 -2
  57. package/src/lib/utils/hooks/useEmbeddedWallet/useEmbeddedWallet.cjs +13 -5
  58. package/src/lib/utils/hooks/useEmbeddedWallet/useEmbeddedWallet.js +13 -5
  59. package/src/lib/utils/hooks/useHandleWalletsToConnect/useHandleWalletsToConnect.d.ts +1 -1
  60. package/src/lib/utils/hooks/useVerifyWallet/useVerifyWallet.cjs +1 -1
  61. package/src/lib/utils/hooks/useVerifyWallet/useVerifyWallet.js +1 -1
  62. package/src/lib/views/EmailVerification/EmailVerification.cjs +9 -3
  63. package/src/lib/views/EmailVerification/EmailVerification.js +9 -3
  64. package/src/lib/views/LoginView/sections/EmailSignInSection/LoginEmailForm.cjs +2 -3
  65. package/src/lib/views/LoginView/sections/EmailSignInSection/LoginEmailForm.js +2 -3
  66. package/src/lib/views/LoginView/sections/WalletSignInSection/WalletSimpleSignIn/WalletSimpleSignIn.cjs +1 -4
  67. package/src/lib/views/LoginView/sections/WalletSignInSection/WalletSimpleSignIn/WalletSimpleSignIn.js +1 -4
  68. package/src/lib/views/LoginView/useLoginView.cjs +11 -3
  69. package/src/lib/views/LoginView/useLoginView.js +11 -3
  70. package/src/lib/views/PasskeyIntroView/PasskeyIntroView.cjs +9 -4
  71. package/src/lib/views/PasskeyIntroView/PasskeyIntroView.js +9 -4
  72. package/src/lib/views/SendBalanceView/SendBalanceView.cjs +3 -2
  73. package/src/lib/views/SendBalanceView/SendBalanceView.js +3 -2
  74. package/src/lib/views/WalletGroupView/WalletGroupView.cjs +1 -1
  75. package/src/lib/views/WalletGroupView/WalletGroupView.js +1 -1
  76. package/src/lib/views/WalletList/WalletList.cjs +1 -1
  77. package/src/lib/views/WalletList/WalletList.js +1 -1
  78. package/src/lib/views/viewToComponentMap.cjs +0 -2
  79. package/src/lib/views/viewToComponentMap.js +0 -2
  80. package/src/lib/utils/functions/isPasskeyEmbeddedWalletEnabled/index.d.ts +0 -1
  81. package/src/lib/utils/functions/isPasskeyEmbeddedWalletEnabled/isPasskeyEmbeddedWalletEnabled.cjs +0 -7
  82. package/src/lib/utils/functions/isPasskeyEmbeddedWalletEnabled/isPasskeyEmbeddedWalletEnabled.d.ts +0 -2
  83. package/src/lib/utils/functions/isPasskeyEmbeddedWalletEnabled/isPasskeyEmbeddedWalletEnabled.js +0 -3
  84. package/src/lib/views/PasskeySuccessView/PasskeySuccessView.cjs +0 -71
  85. package/src/lib/views/PasskeySuccessView/PasskeySuccessView.d.ts +0 -2
  86. package/src/lib/views/PasskeySuccessView/PasskeySuccessView.js +0 -67
  87. package/src/lib/views/PasskeySuccessView/index.d.ts +0 -1
package/CHANGELOG.md CHANGED
@@ -1,4 +1,35 @@
1
1
 
2
+ ## [0.19.0-alpha.17](https://github.com/dynamic-labs/DynamicAuth/compare/v0.19.0-alpha.16...v0.19.0-alpha.17) (2023-10-19)
3
+
4
+
5
+ ### Bug Fixes
6
+
7
+ * memoize createEmbeddedWallet so sync passkey is not called multiple times ([#3612](https://github.com/dynamic-labs/DynamicAuth/issues/3612)) ([11d53e9](https://github.com/dynamic-labs/DynamicAuth/commit/11d53e9bf3e7c4ceb4be7dede96e6facd07a6767))
8
+ * revert any changes of the form of the wallet connector key ([#3608](https://github.com/dynamic-labs/DynamicAuth/issues/3608)) ([f0e2a89](https://github.com/dynamic-labs/DynamicAuth/commit/f0e2a8988047e7533cbfc52eee06d6752c5aa9c4))
9
+
10
+ ## [0.19.0-alpha.16](https://github.com/dynamic-labs/DynamicAuth/compare/v0.19.0-alpha.15...v0.19.0-alpha.16) (2023-10-17)
11
+
12
+
13
+ ### ⚠ BREAKING CHANGES
14
+
15
+ * ethers extension integration and rename provider methods (#3573)
16
+
17
+ ### Features
18
+
19
+ * add onDisconnect ([#3572](https://github.com/dynamic-labs/DynamicAuth/issues/3572)) ([3e612f7](https://github.com/dynamic-labs/DynamicAuth/commit/3e612f72540781b9246a47ac12a7c979fb6c0d88))
20
+ * user callback on passkey creation complete ([#3591](https://github.com/dynamic-labs/DynamicAuth/issues/3591)) ([92d5f7d](https://github.com/dynamic-labs/DynamicAuth/commit/92d5f7df2ac1cc06338f7e9e75125f7bb71455ab))
21
+
22
+
23
+ ### Bug Fixes
24
+
25
+ * argentX in-browser wallet ([#3588](https://github.com/dynamic-labs/DynamicAuth/issues/3588)) ([7f3b22d](https://github.com/dynamic-labs/DynamicAuth/commit/7f3b22d003182aa0d84406086a313fc4de25e4a8))
26
+ * display a better message when transaction amount decimals are invalid ([#3577](https://github.com/dynamic-labs/DynamicAuth/issues/3577)) ([0238d9b](https://github.com/dynamic-labs/DynamicAuth/commit/0238d9b7712d6a52aec89193c751224dd8fd8b17))
27
+ * remove passkey success view ([#3536](https://github.com/dynamic-labs/DynamicAuth/issues/3536)) ([b559de9](https://github.com/dynamic-labs/DynamicAuth/commit/b559de9c83096ed98e9f073b998ac08f876af24e))
28
+ * **wagmi-connector:** use wallets list to sync wagmi client ([#3563](https://github.com/dynamic-labs/DynamicAuth/issues/3563)) ([1d551b9](https://github.com/dynamic-labs/DynamicAuth/commit/1d551b933aefe0c535285d68c2e6f819cd321e62))
29
+
30
+
31
+ * ethers extension integration and rename provider methods ([#3573](https://github.com/dynamic-labs/DynamicAuth/issues/3573)) ([efd73c3](https://github.com/dynamic-labs/DynamicAuth/commit/efd73c3b8121df9a7d4ec8c1fb6c4fd76ecce6df))
32
+
2
33
  ## [0.19.0-alpha.15](https://github.com/dynamic-labs/DynamicAuth/compare/v0.19.0-alpha.14...v0.19.0-alpha.15) (2023-10-11)
3
34
 
4
35
  ## [0.19.0-alpha.14](https://github.com/dynamic-labs/DynamicAuth/compare/v0.19.0-alpha.13...v0.19.0-alpha.14) (2023-10-10)
package/package.cjs CHANGED
@@ -2,10 +2,10 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var version = "0.19.0-alpha.15";
5
+ var version = "0.19.0-alpha.17";
6
6
  var dependencies = {
7
7
  "@dynamic-labs/iconic": "0.1.34",
8
- "@dynamic-labs/sdk-api": "0.0.281",
8
+ "@dynamic-labs/sdk-api": "0.0.291",
9
9
  "@hcaptcha/react-hcaptcha": "1.4.4",
10
10
  "country-list": "2.3.0",
11
11
  formik: "2.2.9",
package/package.js CHANGED
@@ -1,7 +1,7 @@
1
- var version = "0.19.0-alpha.15";
1
+ var version = "0.19.0-alpha.17";
2
2
  var dependencies = {
3
3
  "@dynamic-labs/iconic": "0.1.34",
4
- "@dynamic-labs/sdk-api": "0.0.281",
4
+ "@dynamic-labs/sdk-api": "0.0.291",
5
5
  "@hcaptcha/react-hcaptcha": "1.4.4",
6
6
  "country-list": "2.3.0",
7
7
  formik: "2.2.9",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dynamic-labs/sdk-react-core",
3
- "version": "0.19.0-alpha.15",
3
+ "version": "0.19.0-alpha.17",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "https://github.com/dynamic-labs/DynamicAuth.git",
@@ -8,7 +8,7 @@
8
8
  },
9
9
  "dependencies": {
10
10
  "@dynamic-labs/iconic": "0.1.34",
11
- "@dynamic-labs/sdk-api": "0.0.281",
11
+ "@dynamic-labs/sdk-api": "0.0.291",
12
12
  "@hcaptcha/react-hcaptcha": "1.4.4",
13
13
  "country-list": "2.3.0",
14
14
  "formik": "2.2.9",
@@ -17,13 +17,13 @@
17
17
  "react-focus-lock": "2.9.2",
18
18
  "react-i18next": "^13.2.0",
19
19
  "yup": "0.32.11",
20
- "@dynamic-labs/logger": "0.19.0-alpha.15",
21
- "@dynamic-labs/multi-wallet": "0.19.0-alpha.15",
22
- "@dynamic-labs/rpc-providers": "0.19.0-alpha.15",
23
- "@dynamic-labs/types": "0.19.0-alpha.15",
24
- "@dynamic-labs/utils": "0.19.0-alpha.15",
25
- "@dynamic-labs/wallet-book": "0.19.0-alpha.15",
26
- "@dynamic-labs/wallet-connector-core": "0.19.0-alpha.15",
20
+ "@dynamic-labs/logger": "0.19.0-alpha.17",
21
+ "@dynamic-labs/multi-wallet": "0.19.0-alpha.17",
22
+ "@dynamic-labs/rpc-providers": "0.19.0-alpha.17",
23
+ "@dynamic-labs/types": "0.19.0-alpha.17",
24
+ "@dynamic-labs/utils": "0.19.0-alpha.17",
25
+ "@dynamic-labs/wallet-book": "0.19.0-alpha.17",
26
+ "@dynamic-labs/wallet-connector-core": "0.19.0-alpha.17",
27
27
  "eventemitter3": "5.0.1"
28
28
  },
29
29
  "devDependencies": {
@@ -8,6 +8,19 @@ var formik = require('formik');
8
8
  var yup = require('yup');
9
9
  var Input = require('../Input/Input.cjs');
10
10
  var Button = require('../Button/Button.cjs');
11
+ require('@dynamic-labs/sdk-api');
12
+ require('../../shared/logger.cjs');
13
+ require('@dynamic-labs/iconic');
14
+ require('@dynamic-labs/wallet-connector-core');
15
+ require('../../context/ViewContext/ViewContext.cjs');
16
+ require('@dynamic-labs/wallet-book');
17
+ require('@dynamic-labs/utils');
18
+ require('../../utils/constants/colors.cjs');
19
+ require('../../shared/utils/classes/storage/localStorage.cjs');
20
+ require('viem');
21
+ require('../../shared/consts/index.cjs');
22
+ require('@dynamic-labs/multi-wallet');
23
+ var getOrdinalNumber = require('../../utils/functions/getOrdinalNumber/getOrdinalNumber.cjs');
11
24
 
12
25
  const sendBalanceFormInitialValues = {
13
26
  amount: '',
@@ -15,6 +28,7 @@ const sendBalanceFormInitialValues = {
15
28
  };
16
29
  const mapFieldAndErrorToMessage = {
17
30
  amount: {
31
+ invalidDecimals: 'Please enter a value up to the {decimals} decimal place.',
18
32
  invalidFormat: 'The amount is in invalid format',
19
33
  overBalance: 'Insufficient funds to send this amount.',
20
34
  required: 'The amount field is required',
@@ -24,37 +38,43 @@ const mapFieldAndErrorToMessage = {
24
38
  required: 'The recipient is required',
25
39
  },
26
40
  };
27
- const getDisplayErrorMessage = (errors, field) => {
41
+ const getDisplayErrorMessage = (errors, field, decimals) => {
28
42
  const errorType = errors[field];
29
43
  if (errorType) {
30
- return mapFieldAndErrorToMessage[field][errorType];
44
+ const errorMessage = mapFieldAndErrorToMessage[field][errorType];
45
+ return errorMessage.replace('{decimals}', getOrdinalNumber.getOrdinalNumber(decimals !== null && decimals !== void 0 ? decimals : 0));
31
46
  }
32
47
  return '';
33
48
  };
34
- const SendBalanceForm = ({ initialValues, onSubmit, balance, }) => {
35
- const sendBalanceFormValidationSchema = React.useMemo(() => yup.object().shape({
36
- amount: yup.string()
37
- .required('required')
38
- .matches(/^\d+(\.\d{1,8})?$/, 'invalidFormat')
39
- .test({
40
- message: 'overBalance',
41
- test: (value) => {
42
- if (!value || balance === undefined)
43
- return true;
44
- try {
45
- const valueNumber = parseFloat(value);
46
- return valueNumber < balance;
47
- }
48
- catch (err) {
49
- return true;
50
- }
51
- },
52
- }),
53
- recipient: yup.string()
54
- .required('required')
55
- .matches(/^0x[0-9a-fA-F]{40}$/, 'invalidFormat'),
56
- }), [balance]);
57
- return (jsxRuntime.jsx(formik.Formik, { initialValues: initialValues || sendBalanceFormInitialValues, validationSchema: sendBalanceFormValidationSchema, onSubmit: (values) => onSubmit(values), validateOnChange: false, validateOnBlur: false, children: ({ errors, touched }) => (jsxRuntime.jsxs(formik.Form, { className: 'send-balance-form', children: [jsxRuntime.jsx(formik.Field, { variant: 'regular', className: 'send-balance-form__field', name: 'amount', label: 'Amount', placeholder: 'Select amount', as: Input.Input, error: errors['amount'], message: touched['amount'] && getDisplayErrorMessage(errors, 'amount') }), jsxRuntime.jsx(formik.Field, { variant: 'regular', className: 'send-balance-form__field', placeholder: 'Enter wallet address...', label: 'Recipient', id: 'recipient', name: 'recipient', as: Input.Input, error: errors['recipient'], message: touched['recipient'] &&
49
+ const SendBalanceForm = ({ initialValues, onSubmit, balance, decimals = 18, }) => {
50
+ const sendBalanceFormValidationSchema = React.useMemo(() => {
51
+ const decimalsRegex = new RegExp(`^\\d*(\\.\\d{1,${decimals}})?$`);
52
+ return yup.object().shape({
53
+ amount: yup.string()
54
+ .required('required')
55
+ .matches(/^\d*(\.\d+)?$/, 'invalidFormat')
56
+ .matches(decimalsRegex, 'invalidDecimals')
57
+ .test({
58
+ message: 'overBalance',
59
+ test: (value) => {
60
+ if (!value || balance === undefined)
61
+ return true;
62
+ try {
63
+ const valueNumber = parseFloat(value);
64
+ return valueNumber < balance;
65
+ }
66
+ catch (err) {
67
+ return true;
68
+ }
69
+ },
70
+ }),
71
+ recipient: yup.string()
72
+ .required('required')
73
+ .matches(/^0x[0-9a-fA-F]{40}$/, 'invalidFormat'),
74
+ });
75
+ }, [balance, decimals]);
76
+ return (jsxRuntime.jsx(formik.Formik, { initialValues: initialValues || sendBalanceFormInitialValues, validationSchema: sendBalanceFormValidationSchema, onSubmit: (values) => onSubmit(values), validateOnChange: false, validateOnBlur: false, children: ({ errors, touched }) => (jsxRuntime.jsxs(formik.Form, { className: 'send-balance-form', children: [jsxRuntime.jsx(formik.Field, { variant: 'regular', className: 'send-balance-form__field', name: 'amount', label: 'Amount', placeholder: 'Select amount', as: Input.Input, error: errors['amount'], message: touched['amount'] &&
77
+ getDisplayErrorMessage(errors, 'amount', decimals) }), jsxRuntime.jsx(formik.Field, { variant: 'regular', className: 'send-balance-form__field', placeholder: 'Enter wallet address...', label: 'Recipient', id: 'recipient', name: 'recipient', as: Input.Input, error: errors['recipient'], message: touched['recipient'] &&
58
78
  getDisplayErrorMessage(errors, 'recipient') }), jsxRuntime.jsx(Button.Button, { dataTestId: 'sendBalanceFormSubmitButton', expanded: true, type: 'submit', buttonVariant: 'primary', buttonPadding: 'large', buttonRounded: 'default', buttonClassName: 'send-balance-form__button', children: "Send now" })] })) }));
59
79
  };
60
80
 
@@ -7,5 +7,6 @@ export type Props = {
7
7
  initialValues?: SendBalanceFormValues;
8
8
  onSubmit: (formValues: SendBalanceFormValues) => void;
9
9
  balance?: number;
10
+ decimals?: number;
10
11
  };
11
12
  export declare const SendBalanceForm: FC<Props>;
@@ -4,6 +4,19 @@ import { Formik, Form, Field } from 'formik';
4
4
  import { object, string } from 'yup';
5
5
  import { Input } from '../Input/Input.js';
6
6
  import { Button } from '../Button/Button.js';
7
+ import '@dynamic-labs/sdk-api';
8
+ import '../../shared/logger.js';
9
+ import '@dynamic-labs/iconic';
10
+ import '@dynamic-labs/wallet-connector-core';
11
+ import '../../context/ViewContext/ViewContext.js';
12
+ import '@dynamic-labs/wallet-book';
13
+ import '@dynamic-labs/utils';
14
+ import '../../utils/constants/colors.js';
15
+ import '../../shared/utils/classes/storage/localStorage.js';
16
+ import 'viem';
17
+ import '../../shared/consts/index.js';
18
+ import '@dynamic-labs/multi-wallet';
19
+ import { getOrdinalNumber } from '../../utils/functions/getOrdinalNumber/getOrdinalNumber.js';
7
20
 
8
21
  const sendBalanceFormInitialValues = {
9
22
  amount: '',
@@ -11,6 +24,7 @@ const sendBalanceFormInitialValues = {
11
24
  };
12
25
  const mapFieldAndErrorToMessage = {
13
26
  amount: {
27
+ invalidDecimals: 'Please enter a value up to the {decimals} decimal place.',
14
28
  invalidFormat: 'The amount is in invalid format',
15
29
  overBalance: 'Insufficient funds to send this amount.',
16
30
  required: 'The amount field is required',
@@ -20,37 +34,43 @@ const mapFieldAndErrorToMessage = {
20
34
  required: 'The recipient is required',
21
35
  },
22
36
  };
23
- const getDisplayErrorMessage = (errors, field) => {
37
+ const getDisplayErrorMessage = (errors, field, decimals) => {
24
38
  const errorType = errors[field];
25
39
  if (errorType) {
26
- return mapFieldAndErrorToMessage[field][errorType];
40
+ const errorMessage = mapFieldAndErrorToMessage[field][errorType];
41
+ return errorMessage.replace('{decimals}', getOrdinalNumber(decimals !== null && decimals !== void 0 ? decimals : 0));
27
42
  }
28
43
  return '';
29
44
  };
30
- const SendBalanceForm = ({ initialValues, onSubmit, balance, }) => {
31
- const sendBalanceFormValidationSchema = useMemo(() => object().shape({
32
- amount: string()
33
- .required('required')
34
- .matches(/^\d+(\.\d{1,8})?$/, 'invalidFormat')
35
- .test({
36
- message: 'overBalance',
37
- test: (value) => {
38
- if (!value || balance === undefined)
39
- return true;
40
- try {
41
- const valueNumber = parseFloat(value);
42
- return valueNumber < balance;
43
- }
44
- catch (err) {
45
- return true;
46
- }
47
- },
48
- }),
49
- recipient: string()
50
- .required('required')
51
- .matches(/^0x[0-9a-fA-F]{40}$/, 'invalidFormat'),
52
- }), [balance]);
53
- return (jsx(Formik, { initialValues: initialValues || sendBalanceFormInitialValues, validationSchema: sendBalanceFormValidationSchema, onSubmit: (values) => onSubmit(values), validateOnChange: false, validateOnBlur: false, children: ({ errors, touched }) => (jsxs(Form, { className: 'send-balance-form', children: [jsx(Field, { variant: 'regular', className: 'send-balance-form__field', name: 'amount', label: 'Amount', placeholder: 'Select amount', as: Input, error: errors['amount'], message: touched['amount'] && getDisplayErrorMessage(errors, 'amount') }), jsx(Field, { variant: 'regular', className: 'send-balance-form__field', placeholder: 'Enter wallet address...', label: 'Recipient', id: 'recipient', name: 'recipient', as: Input, error: errors['recipient'], message: touched['recipient'] &&
45
+ const SendBalanceForm = ({ initialValues, onSubmit, balance, decimals = 18, }) => {
46
+ const sendBalanceFormValidationSchema = useMemo(() => {
47
+ const decimalsRegex = new RegExp(`^\\d*(\\.\\d{1,${decimals}})?$`);
48
+ return object().shape({
49
+ amount: string()
50
+ .required('required')
51
+ .matches(/^\d*(\.\d+)?$/, 'invalidFormat')
52
+ .matches(decimalsRegex, 'invalidDecimals')
53
+ .test({
54
+ message: 'overBalance',
55
+ test: (value) => {
56
+ if (!value || balance === undefined)
57
+ return true;
58
+ try {
59
+ const valueNumber = parseFloat(value);
60
+ return valueNumber < balance;
61
+ }
62
+ catch (err) {
63
+ return true;
64
+ }
65
+ },
66
+ }),
67
+ recipient: string()
68
+ .required('required')
69
+ .matches(/^0x[0-9a-fA-F]{40}$/, 'invalidFormat'),
70
+ });
71
+ }, [balance, decimals]);
72
+ return (jsx(Formik, { initialValues: initialValues || sendBalanceFormInitialValues, validationSchema: sendBalanceFormValidationSchema, onSubmit: (values) => onSubmit(values), validateOnChange: false, validateOnBlur: false, children: ({ errors, touched }) => (jsxs(Form, { className: 'send-balance-form', children: [jsx(Field, { variant: 'regular', className: 'send-balance-form__field', name: 'amount', label: 'Amount', placeholder: 'Select amount', as: Input, error: errors['amount'], message: touched['amount'] &&
73
+ getDisplayErrorMessage(errors, 'amount', decimals) }), jsx(Field, { variant: 'regular', className: 'send-balance-form__field', placeholder: 'Enter wallet address...', label: 'Recipient', id: 'recipient', name: 'recipient', as: Input, error: errors['recipient'], message: touched['recipient'] &&
54
74
  getDisplayErrorMessage(errors, 'recipient') }), jsx(Button, { dataTestId: 'sendBalanceFormSubmitButton', expanded: true, type: 'submit', buttonVariant: 'primary', buttonPadding: 'large', buttonRounded: 'default', buttonClassName: 'send-balance-form__button', children: "Send now" })] })) }));
55
75
  };
56
76
 
@@ -34,7 +34,7 @@ var Chip = require('../Chip/Chip.cjs');
34
34
  var FormFieldLabel = require('../FormFieldLabel/FormFieldLabel.cjs');
35
35
  var TokenBalanceCard = require('./components/TokenBalanceCard/TokenBalanceCard.cjs');
36
36
 
37
- const SendBalancePageLayout = ({ error, walletAddress, onClickClose, onClickBack, walletKey, onSubmit, displayPoweredByDynamicFooter = false, balance, chain, currencySymbol, initialValues, networkName, networkIcon, }) => {
37
+ const SendBalancePageLayout = ({ error, walletAddress, onClickClose, onClickBack, walletKey, onSubmit, displayPoweredByDynamicFooter = false, balance, chain, currencySymbol, initialValues, networkName, networkIcon, networkCurrencyDecimals, }) => {
38
38
  const closeButton = onClickClose && (jsxRuntime.jsx(IconButton.IconButton, { type: 'button', onClick: onClickClose, "data-testid": 'close-button', children: jsxRuntime.jsx(close.ReactComponent, {}) }));
39
39
  const backButton = onClickBack && (jsxRuntime.jsx(IconButton.IconButton, { type: 'button', onClick: onClickBack, "data-testid": 'back-button', children: jsxRuntime.jsx(chevronLeft.ReactComponent, {}) }));
40
40
  const balanceNumber = React.useMemo(() => {
@@ -45,7 +45,7 @@ const SendBalancePageLayout = ({ error, walletAddress, onClickClose, onClickBack
45
45
  return;
46
46
  return parseFloat(balance);
47
47
  }, [balance]);
48
- return (jsxRuntime.jsxs("div", { children: [jsxRuntime.jsx(ModalHeader.ModalHeader, { leading: backButton, trailing: closeButton, children: jsxRuntime.jsxs("div", { className: 'send-balance-page-layout__header-content', children: [jsxRuntime.jsx(Typography.Typography, { variant: 'body_normal', color: 'primary', as: 'p', children: "Send from" }), walletKey && (jsxRuntime.jsx(Icon.Icon, { size: 'small', children: jsxRuntime.jsx(walletBook.WalletIcon, { walletKey: walletKey }) })), jsxRuntime.jsx(Typography.Typography, { variant: 'body_normal', color: 'primary', as: 'p', children: shortenWalletAddress.shortenWalletAddress(walletAddress, 3, 3) })] }) }), jsxRuntime.jsxs("div", { className: 'send-balance-page-layout__body', children: [jsxRuntime.jsx(AnimatePresence.AnimatePresence, { animationComponent: jsxRuntime.jsx(VerticalDrawerTransition.VerticalDrawerTransition, {}), children: error && (jsxRuntime.jsx("div", { className: 'send-balance-page-layout__error', children: jsxRuntime.jsx(Alert.Alert, { icon: 'error', variant: 'error', children: error }) })) }), networkName && networkIcon && (jsxRuntime.jsx("div", { className: 'send-balance-page-layout__network-container', children: jsxRuntime.jsx(Chip.Chip, { icon: networkIcon, children: networkName }) })), jsxRuntime.jsxs("div", { className: 'send-balance-page-layout__balance-container', children: [jsxRuntime.jsx(FormFieldLabel.FormFieldLabel, { divider: true, children: "Token" }), jsxRuntime.jsx(TokenBalanceCard.TokenBalanceCard, { chain: chain, currencySymbol: currencySymbol, balance: balance })] }), jsxRuntime.jsx(SendBalanceForm.SendBalanceForm, { onSubmit: onSubmit, initialValues: initialValues, balance: balanceNumber }), displayPoweredByDynamicFooter && (jsxRuntime.jsx(PoweredByDynamic.PoweredByDynamic, { classNameRoot: 'send-balance-page-layout__footer' }))] })] }));
48
+ return (jsxRuntime.jsxs("div", { children: [jsxRuntime.jsx(ModalHeader.ModalHeader, { leading: backButton, trailing: closeButton, children: jsxRuntime.jsxs("div", { className: 'send-balance-page-layout__header-content', children: [jsxRuntime.jsx(Typography.Typography, { variant: 'body_normal', color: 'primary', as: 'p', children: "Send from" }), walletKey && (jsxRuntime.jsx(Icon.Icon, { size: 'small', children: jsxRuntime.jsx(walletBook.WalletIcon, { walletKey: walletKey }) })), jsxRuntime.jsx(Typography.Typography, { variant: 'body_normal', color: 'primary', as: 'p', children: shortenWalletAddress.shortenWalletAddress(walletAddress, 3, 3) })] }) }), jsxRuntime.jsxs("div", { className: 'send-balance-page-layout__body', children: [jsxRuntime.jsx(AnimatePresence.AnimatePresence, { animationComponent: jsxRuntime.jsx(VerticalDrawerTransition.VerticalDrawerTransition, {}), children: error && (jsxRuntime.jsx("div", { className: 'send-balance-page-layout__error', children: jsxRuntime.jsx(Alert.Alert, { icon: 'error', variant: 'error', children: error }) })) }), networkName && networkIcon && (jsxRuntime.jsx("div", { className: 'send-balance-page-layout__network-container', children: jsxRuntime.jsx(Chip.Chip, { icon: networkIcon, children: networkName }) })), jsxRuntime.jsxs("div", { className: 'send-balance-page-layout__balance-container', children: [jsxRuntime.jsx(FormFieldLabel.FormFieldLabel, { divider: true, children: "Token" }), jsxRuntime.jsx(TokenBalanceCard.TokenBalanceCard, { chain: chain, currencySymbol: currencySymbol, balance: balance })] }), jsxRuntime.jsx(SendBalanceForm.SendBalanceForm, { onSubmit: onSubmit, initialValues: initialValues, balance: balanceNumber, decimals: networkCurrencyDecimals }), displayPoweredByDynamicFooter && (jsxRuntime.jsx(PoweredByDynamic.PoweredByDynamic, { classNameRoot: 'send-balance-page-layout__footer' }))] })] }));
49
49
  };
50
50
 
51
51
  exports.SendBalancePageLayout = SendBalancePageLayout;
@@ -10,6 +10,7 @@ export type SendBalancePageLayoutProps = {
10
10
  isLoading: boolean;
11
11
  networkIcon?: ReactNode;
12
12
  networkName?: string;
13
+ networkCurrencyDecimals?: number;
13
14
  onClickBack?: MouseEventHandler<HTMLButtonElement>;
14
15
  onClickClose?: MouseEventHandler<HTMLButtonElement>;
15
16
  onSubmit: (formValues: SendBalanceFormValues) => void;
@@ -30,7 +30,7 @@ import { Chip } from '../Chip/Chip.js';
30
30
  import { FormFieldLabel } from '../FormFieldLabel/FormFieldLabel.js';
31
31
  import { TokenBalanceCard } from './components/TokenBalanceCard/TokenBalanceCard.js';
32
32
 
33
- const SendBalancePageLayout = ({ error, walletAddress, onClickClose, onClickBack, walletKey, onSubmit, displayPoweredByDynamicFooter = false, balance, chain, currencySymbol, initialValues, networkName, networkIcon, }) => {
33
+ const SendBalancePageLayout = ({ error, walletAddress, onClickClose, onClickBack, walletKey, onSubmit, displayPoweredByDynamicFooter = false, balance, chain, currencySymbol, initialValues, networkName, networkIcon, networkCurrencyDecimals, }) => {
34
34
  const closeButton = onClickClose && (jsx(IconButton, { type: 'button', onClick: onClickClose, "data-testid": 'close-button', children: jsx(SvgClose, {}) }));
35
35
  const backButton = onClickBack && (jsx(IconButton, { type: 'button', onClick: onClickBack, "data-testid": 'back-button', children: jsx(SvgChevronLeft, {}) }));
36
36
  const balanceNumber = useMemo(() => {
@@ -41,7 +41,7 @@ const SendBalancePageLayout = ({ error, walletAddress, onClickClose, onClickBack
41
41
  return;
42
42
  return parseFloat(balance);
43
43
  }, [balance]);
44
- return (jsxs("div", { children: [jsx(ModalHeader, { leading: backButton, trailing: closeButton, children: jsxs("div", { className: 'send-balance-page-layout__header-content', children: [jsx(Typography, { variant: 'body_normal', color: 'primary', as: 'p', children: "Send from" }), walletKey && (jsx(Icon, { size: 'small', children: jsx(WalletIcon, { walletKey: walletKey }) })), jsx(Typography, { variant: 'body_normal', color: 'primary', as: 'p', children: shortenWalletAddress(walletAddress, 3, 3) })] }) }), jsxs("div", { className: 'send-balance-page-layout__body', children: [jsx(AnimatePresence, { animationComponent: jsx(VerticalDrawerTransition, {}), children: error && (jsx("div", { className: 'send-balance-page-layout__error', children: jsx(Alert, { icon: 'error', variant: 'error', children: error }) })) }), networkName && networkIcon && (jsx("div", { className: 'send-balance-page-layout__network-container', children: jsx(Chip, { icon: networkIcon, children: networkName }) })), jsxs("div", { className: 'send-balance-page-layout__balance-container', children: [jsx(FormFieldLabel, { divider: true, children: "Token" }), jsx(TokenBalanceCard, { chain: chain, currencySymbol: currencySymbol, balance: balance })] }), jsx(SendBalanceForm, { onSubmit: onSubmit, initialValues: initialValues, balance: balanceNumber }), displayPoweredByDynamicFooter && (jsx(PoweredByDynamic, { classNameRoot: 'send-balance-page-layout__footer' }))] })] }));
44
+ return (jsxs("div", { children: [jsx(ModalHeader, { leading: backButton, trailing: closeButton, children: jsxs("div", { className: 'send-balance-page-layout__header-content', children: [jsx(Typography, { variant: 'body_normal', color: 'primary', as: 'p', children: "Send from" }), walletKey && (jsx(Icon, { size: 'small', children: jsx(WalletIcon, { walletKey: walletKey }) })), jsx(Typography, { variant: 'body_normal', color: 'primary', as: 'p', children: shortenWalletAddress(walletAddress, 3, 3) })] }) }), jsxs("div", { className: 'send-balance-page-layout__body', children: [jsx(AnimatePresence, { animationComponent: jsx(VerticalDrawerTransition, {}), children: error && (jsx("div", { className: 'send-balance-page-layout__error', children: jsx(Alert, { icon: 'error', variant: 'error', children: error }) })) }), networkName && networkIcon && (jsx("div", { className: 'send-balance-page-layout__network-container', children: jsx(Chip, { icon: networkIcon, children: networkName }) })), jsxs("div", { className: 'send-balance-page-layout__balance-container', children: [jsx(FormFieldLabel, { divider: true, children: "Token" }), jsx(TokenBalanceCard, { chain: chain, currencySymbol: currencySymbol, balance: balance })] }), jsx(SendBalanceForm, { onSubmit: onSubmit, initialValues: initialValues, balance: balanceNumber, decimals: networkCurrencyDecimals }), displayPoweredByDynamicFooter && (jsx(PoweredByDynamic, { classNameRoot: 'send-balance-page-layout__footer' }))] })] }));
45
45
  };
46
46
 
47
47
  export { SendBalancePageLayout };
@@ -22,7 +22,7 @@ require('../../config/ApiEndpoint.cjs');
22
22
  require('@dynamic-labs/multi-wallet');
23
23
  require('@dynamic-labs/rpc-providers');
24
24
  require('../../utils/hooks/useWallets/utils/verifyMagicIsSetup/verifyMagicIsSetup.cjs');
25
- var isPasskeyEmbeddedWalletEnabled = require('../../utils/functions/isPasskeyEmbeddedWalletEnabled/isPasskeyEmbeddedWalletEnabled.cjs');
25
+ var isTurnkeyEnabled = require('../../utils/functions/isTurnkeyEnabled/isTurnkeyEnabled.cjs');
26
26
  require('../../context/ErrorContext/ErrorContext.cjs');
27
27
  require('../../context/AccessDeniedContext/AccessDeniedContext.cjs');
28
28
  require('../../context/AccountExistsContext/AccountExistsContext.cjs');
@@ -65,6 +65,7 @@ const SyncPasskeyFlow = () => {
65
65
  const lastUsedWallet = localStorage.LocalStorage.getFromLS(localStorage$1.LAST_USED_WALLET);
66
66
  const { createEmbeddedWallet } = useEmbeddedWallet.useEmbeddedWallet();
67
67
  React.useEffect(() => {
68
+ var _a;
68
69
  const createWallet = () => _tslib.__awaiter(void 0, void 0, void 0, function* () {
69
70
  try {
70
71
  yield createEmbeddedWallet();
@@ -76,7 +77,8 @@ const SyncPasskeyFlow = () => {
76
77
  if (!user ||
77
78
  isProjectSettingsLoading ||
78
79
  !projectSettings ||
79
- !isPasskeyEmbeddedWalletEnabled.isPasskeyEmbeddedWalletEnabled(projectSettings) ||
80
+ !isTurnkeyEnabled.isTurnkeyEnabled(projectSettings) ||
81
+ !((_a = projectSettings.sdk) === null || _a === void 0 ? void 0 : _a.automaticEmbeddedWalletCreation) ||
80
82
  lastUsedWallet !== undefined //untill embedded wallet is generated it's undefined
81
83
  ) {
82
84
  return;
@@ -88,7 +90,6 @@ const SyncPasskeyFlow = () => {
88
90
  lastUsedWallet,
89
91
  authMode,
90
92
  user,
91
- isPasskeyEmbeddedWalletEnabled.isPasskeyEmbeddedWalletEnabled,
92
93
  createEmbeddedWallet,
93
94
  ]);
94
95
  return jsxRuntime.jsx(jsxRuntime.Fragment, {});
@@ -18,7 +18,7 @@ import '../../config/ApiEndpoint.js';
18
18
  import '@dynamic-labs/multi-wallet';
19
19
  import '@dynamic-labs/rpc-providers';
20
20
  import '../../utils/hooks/useWallets/utils/verifyMagicIsSetup/verifyMagicIsSetup.js';
21
- import { isPasskeyEmbeddedWalletEnabled } from '../../utils/functions/isPasskeyEmbeddedWalletEnabled/isPasskeyEmbeddedWalletEnabled.js';
21
+ import { isTurnkeyEnabled } from '../../utils/functions/isTurnkeyEnabled/isTurnkeyEnabled.js';
22
22
  import '../../context/ErrorContext/ErrorContext.js';
23
23
  import '../../context/AccessDeniedContext/AccessDeniedContext.js';
24
24
  import '../../context/AccountExistsContext/AccountExistsContext.js';
@@ -61,6 +61,7 @@ const SyncPasskeyFlow = () => {
61
61
  const lastUsedWallet = LocalStorage.getFromLS(LAST_USED_WALLET);
62
62
  const { createEmbeddedWallet } = useEmbeddedWallet();
63
63
  useEffect(() => {
64
+ var _a;
64
65
  const createWallet = () => __awaiter(void 0, void 0, void 0, function* () {
65
66
  try {
66
67
  yield createEmbeddedWallet();
@@ -72,7 +73,8 @@ const SyncPasskeyFlow = () => {
72
73
  if (!user ||
73
74
  isProjectSettingsLoading ||
74
75
  !projectSettings ||
75
- !isPasskeyEmbeddedWalletEnabled(projectSettings) ||
76
+ !isTurnkeyEnabled(projectSettings) ||
77
+ !((_a = projectSettings.sdk) === null || _a === void 0 ? void 0 : _a.automaticEmbeddedWalletCreation) ||
76
78
  lastUsedWallet !== undefined //untill embedded wallet is generated it's undefined
77
79
  ) {
78
80
  return;
@@ -84,7 +86,6 @@ const SyncPasskeyFlow = () => {
84
86
  lastUsedWallet,
85
87
  authMode,
86
88
  user,
87
- isPasskeyEmbeddedWalletEnabled,
88
89
  createEmbeddedWallet,
89
90
  ]);
90
91
  return jsx(Fragment, {});
@@ -38,7 +38,7 @@ const TransactionConfirmationPageLayout = ({ onClickClose, isLoading, onClickBac
38
38
  const backButton = onClickBack && (jsxRuntime.jsx(IconButton.IconButton, { type: 'button', onClick: onClickBack, "data-testid": 'back-button', children: jsxRuntime.jsx(chevronLeft.ReactComponent, {}) }));
39
39
  return (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx(ModalHeader.ModalHeader, { trailing: closeButton, leading: backButton, alignContent: 'bottom', children: jsxRuntime.jsx(IconWithSpinner.IconWithSpinner, { Icon: (props) => (jsxRuntime.jsx(Icon.Icon, { color: 'brand-primary', children: jsxRuntime.jsx(signCircle.ReactComponent, Object.assign({}, props)) })), iconSize: 64, isSpinning: true }) }), jsxRuntime.jsxs("div", { className: 'transaction-confirmation__body', children: [jsxRuntime.jsx(Typography.Typography, { variant: 'title', color: 'primary', className: 'transaction-confirmation__title', children: title }), jsxRuntime.jsx(AnimatePresence.AnimatePresence, { animationComponent: jsxRuntime.jsx(VerticalDrawerTransition.VerticalDrawerTransition, {}), children: error && (jsxRuntime.jsx("div", { className: 'transaction-confirmation__error', children: jsxRuntime.jsx(Alert.Alert, { icon: 'error', variant: 'error', children: error }) })) }), jsxRuntime.jsxs("div", { className: 'transaction-confirmation__content', children: [jsxRuntime.jsx("div", { className: 'transaction-confirmation__app-origin-tile', children: jsxRuntime.jsx(AppOriginTile.AppOriginTile, { appLogoUrl: appLogoUrl, appName: appName, appOrigin: appOrigin }) }), jsxRuntime.jsx("div", { className: 'transaction-confirmation__rows', children: children })] }), jsxRuntime.jsx(AnimatePresence.AnimatePresence, { animationComponent: jsxRuntime.jsx(VerticalDrawerTransition.VerticalDrawerTransition, {}), children: warningMessage && (jsxRuntime.jsx("div", { className: 'transaction-confirmation__warning', children: jsxRuntime.jsx(Alert.Alert, { icon: 'error', variant: 'warning', contentDataTestId: 'warning_content', children: warningMessage }) })) }), jsxRuntime.jsxs("div", { className: 'transaction-confirmation__actions', children: [onClickClose && (jsxRuntime.jsx(Button.Button, { buttonVariant: 'secondary', onClick: onClickClose, expanded: true, buttonPadding: 'large', buttonRounded: 'default', disabled: isLoading, children: "Cancel" })), jsxRuntime.jsx(Button.Button, { buttonVariant: 'primary', buttonPadding: 'large', onClick: (event) => {
40
40
  onClickSend === null || onClickSend === void 0 ? void 0 : onClickSend(event);
41
- }, expanded: true, buttonRounded: 'default', loading: isLoading, disabled: disableSendButton, children: "Send" })] }), displayPoweredByDynamicFooter && (jsxRuntime.jsx(PoweredByDynamic.PoweredByDynamic, { classNameRoot: 'transaction-confirmation__footer' }))] })] }));
41
+ }, expanded: true, buttonRounded: 'default', loading: isLoading, disabled: disableSendButton, children: "Confirm" })] }), displayPoweredByDynamicFooter && (jsxRuntime.jsx(PoweredByDynamic.PoweredByDynamic, { classNameRoot: 'transaction-confirmation__footer' }))] })] }));
42
42
  };
43
43
 
44
44
  exports.TransactionConfirmationPageLayout = TransactionConfirmationPageLayout;
@@ -34,7 +34,7 @@ const TransactionConfirmationPageLayout = ({ onClickClose, isLoading, onClickBac
34
34
  const backButton = onClickBack && (jsx(IconButton, { type: 'button', onClick: onClickBack, "data-testid": 'back-button', children: jsx(SvgChevronLeft, {}) }));
35
35
  return (jsxs(Fragment, { children: [jsx(ModalHeader, { trailing: closeButton, leading: backButton, alignContent: 'bottom', children: jsx(IconWithSpinner, { Icon: (props) => (jsx(Icon, { color: 'brand-primary', children: jsx(SvgSignCircle, Object.assign({}, props)) })), iconSize: 64, isSpinning: true }) }), jsxs("div", { className: 'transaction-confirmation__body', children: [jsx(Typography, { variant: 'title', color: 'primary', className: 'transaction-confirmation__title', children: title }), jsx(AnimatePresence, { animationComponent: jsx(VerticalDrawerTransition, {}), children: error && (jsx("div", { className: 'transaction-confirmation__error', children: jsx(Alert, { icon: 'error', variant: 'error', children: error }) })) }), jsxs("div", { className: 'transaction-confirmation__content', children: [jsx("div", { className: 'transaction-confirmation__app-origin-tile', children: jsx(AppOriginTile, { appLogoUrl: appLogoUrl, appName: appName, appOrigin: appOrigin }) }), jsx("div", { className: 'transaction-confirmation__rows', children: children })] }), jsx(AnimatePresence, { animationComponent: jsx(VerticalDrawerTransition, {}), children: warningMessage && (jsx("div", { className: 'transaction-confirmation__warning', children: jsx(Alert, { icon: 'error', variant: 'warning', contentDataTestId: 'warning_content', children: warningMessage }) })) }), jsxs("div", { className: 'transaction-confirmation__actions', children: [onClickClose && (jsx(Button, { buttonVariant: 'secondary', onClick: onClickClose, expanded: true, buttonPadding: 'large', buttonRounded: 'default', disabled: isLoading, children: "Cancel" })), jsx(Button, { buttonVariant: 'primary', buttonPadding: 'large', onClick: (event) => {
36
36
  onClickSend === null || onClickSend === void 0 ? void 0 : onClickSend(event);
37
- }, expanded: true, buttonRounded: 'default', loading: isLoading, disabled: disableSendButton, children: "Send" })] }), displayPoweredByDynamicFooter && (jsx(PoweredByDynamic, { classNameRoot: 'transaction-confirmation__footer' }))] })] }));
37
+ }, expanded: true, buttonRounded: 'default', loading: isLoading, disabled: disableSendButton, children: "Confirm" })] }), displayPoweredByDynamicFooter && (jsx(PoweredByDynamic, { classNameRoot: 'transaction-confirmation__footer' }))] })] }));
38
38
  };
39
39
 
40
40
  export { TransactionConfirmationPageLayout };
@@ -104,6 +104,7 @@ var useCustomerCallbacks = require('./useCustomerCallbacks/useCustomerCallbacks.
104
104
  var useCustomerAuthFlowCallbacks = require('./useCustomerCallbacks/useCustomerAuthFlowCallbacks.cjs');
105
105
  var validators = require('./validators.cjs');
106
106
  var internalEvents = require('./internalEvents/internalEvents.cjs');
107
+ var handleDisconnectWallet = require('./handleDisconnectWallet/handleDisconnectWallet.cjs');
107
108
 
108
109
  const PUBLIC_PROJECT_LIVE_ENVIRONMENT_ID = '2762a57b-faa4-41ce-9f16-abff9300e2c9';
109
110
  const EMPTY_INITIAL_USER = undefined;
@@ -202,10 +203,13 @@ const DynamicContextProvider = ({ children, theme, settings, locale: locale$1, }
202
203
  enableVisitTrackingOnConnectOnly,
203
204
  environmentId,
204
205
  onBeforeConnectSuccessConfirmation: eventsCallbacks === null || eventsCallbacks === void 0 ? void 0 : eventsCallbacks.onBeforeConnectSuccessConfirmation,
205
- onUnlink: (walletId, connectedWalletsInfo) => {
206
- const missingChains = getMissingChains.getMissingChains(walletsByChain, connectedWalletsInfo);
207
- setWalletsToConnectByChain(missingChains);
208
- },
206
+ onUnlink: (wallet, connectedWalletsInfo) => handleDisconnectWallet.handleDisconnectWallet({
207
+ connectedWalletsInfo,
208
+ eventsCallbacks,
209
+ setWalletsToConnectByChain,
210
+ wallet,
211
+ walletsByChain,
212
+ }),
209
213
  primaryWalletId,
210
214
  setPrimaryWalletId,
211
215
  setShowAuthFlow,
@@ -267,7 +271,7 @@ const DynamicContextProvider = ({ children, theme, settings, locale: locale$1, }
267
271
  clearOphanedWalletConnectSessions,
268
272
  ]);
269
273
  const handleLogOut = React.useCallback(() => _tslib.__awaiter(void 0, void 0, void 0, function* () {
270
- var _j, _k;
274
+ var _j, _k, _l;
271
275
  clearAllWalletConnectSessions();
272
276
  setWalletsToConnectByChain(walletsByChain);
273
277
  setShowDynamicUserProfile(false);
@@ -300,13 +304,21 @@ const DynamicContextProvider = ({ children, theme, settings, locale: locale$1, }
300
304
  removeIsFullyConnected();
301
305
  clearPrimaryWalletId();
302
306
  removeConnectedNameService();
303
- (_k = eventsCallbacks === null || eventsCallbacks === void 0 ? void 0 : eventsCallbacks.onLogout) === null || _k === void 0 ? void 0 : _k.call(eventsCallbacks, user);
307
+ if (connectedWallet) {
308
+ (_k = eventsCallbacks === null || eventsCallbacks === void 0 ? void 0 : eventsCallbacks.onDisconnect) === null || _k === void 0 ? void 0 : _k.call(eventsCallbacks, {
309
+ walletConnector: connectedWallet === null || connectedWallet === void 0 ? void 0 : connectedWallet.connector,
310
+ });
311
+ }
312
+ (_l = eventsCallbacks === null || eventsCallbacks === void 0 ? void 0 : eventsCallbacks.onLogout) === null || _l === void 0 ? void 0 : _l.call(eventsCallbacks, user);
304
313
  internalEventsRef.current.emit('logout');
305
314
  }), [
306
315
  clearAllWalletConnectSessions,
307
316
  walletsByChain,
317
+ toolkitEnabled,
308
318
  user,
309
- connectedWallet === null || connectedWallet === void 0 ? void 0 : connectedWallet.connector,
319
+ connectedWallet,
320
+ isVerificationInProgress,
321
+ setIsVerificationInProgress,
310
322
  setAuthMode,
311
323
  initialAuthenticationMode,
312
324
  setMultiWalletWidgetState,
@@ -386,6 +398,7 @@ const DynamicContextProvider = ({ children, theme, settings, locale: locale$1, }
386
398
  onConnectSuccess: eventsCallbacks === null || eventsCallbacks === void 0 ? void 0 : eventsCallbacks.onConnectSuccess,
387
399
  onEmailVerificationFailure,
388
400
  onEmailVerificationSuccess,
401
+ onEmbeddedWalletCreated: eventsCallbacks === null || eventsCallbacks === void 0 ? void 0 : eventsCallbacks.onEmbeddedWalletCreated,
389
402
  onLinkSuccess: eventsCallbacks === null || eventsCallbacks === void 0 ? void 0 : eventsCallbacks.onLinkSuccess,
390
403
  onUserProfileUpdate: eventsCallbacks === null || eventsCallbacks === void 0 ? void 0 : eventsCallbacks.onUserProfileUpdate,
391
404
  },
@@ -100,6 +100,7 @@ import { useCustomerCallbacks } from './useCustomerCallbacks/useCustomerCallback
100
100
  import { useCustomerAuthFlowCallbacks } from './useCustomerCallbacks/useCustomerAuthFlowCallbacks.js';
101
101
  import { validateAuthUser } from './validators.js';
102
102
  import { getInternalEvents } from './internalEvents/internalEvents.js';
103
+ import { handleDisconnectWallet } from './handleDisconnectWallet/handleDisconnectWallet.js';
103
104
 
104
105
  const PUBLIC_PROJECT_LIVE_ENVIRONMENT_ID = '2762a57b-faa4-41ce-9f16-abff9300e2c9';
105
106
  const EMPTY_INITIAL_USER = undefined;
@@ -198,10 +199,13 @@ const DynamicContextProvider = ({ children, theme, settings, locale, }) => {
198
199
  enableVisitTrackingOnConnectOnly,
199
200
  environmentId,
200
201
  onBeforeConnectSuccessConfirmation: eventsCallbacks === null || eventsCallbacks === void 0 ? void 0 : eventsCallbacks.onBeforeConnectSuccessConfirmation,
201
- onUnlink: (walletId, connectedWalletsInfo) => {
202
- const missingChains = getMissingChains(walletsByChain, connectedWalletsInfo);
203
- setWalletsToConnectByChain(missingChains);
204
- },
202
+ onUnlink: (wallet, connectedWalletsInfo) => handleDisconnectWallet({
203
+ connectedWalletsInfo,
204
+ eventsCallbacks,
205
+ setWalletsToConnectByChain,
206
+ wallet,
207
+ walletsByChain,
208
+ }),
205
209
  primaryWalletId,
206
210
  setPrimaryWalletId,
207
211
  setShowAuthFlow,
@@ -263,7 +267,7 @@ const DynamicContextProvider = ({ children, theme, settings, locale, }) => {
263
267
  clearOphanedWalletConnectSessions,
264
268
  ]);
265
269
  const handleLogOut = useCallback(() => __awaiter(void 0, void 0, void 0, function* () {
266
- var _j, _k;
270
+ var _j, _k, _l;
267
271
  clearAllWalletConnectSessions();
268
272
  setWalletsToConnectByChain(walletsByChain);
269
273
  setShowDynamicUserProfile(false);
@@ -296,13 +300,21 @@ const DynamicContextProvider = ({ children, theme, settings, locale, }) => {
296
300
  removeIsFullyConnected();
297
301
  clearPrimaryWalletId();
298
302
  removeConnectedNameService();
299
- (_k = eventsCallbacks === null || eventsCallbacks === void 0 ? void 0 : eventsCallbacks.onLogout) === null || _k === void 0 ? void 0 : _k.call(eventsCallbacks, user);
303
+ if (connectedWallet) {
304
+ (_k = eventsCallbacks === null || eventsCallbacks === void 0 ? void 0 : eventsCallbacks.onDisconnect) === null || _k === void 0 ? void 0 : _k.call(eventsCallbacks, {
305
+ walletConnector: connectedWallet === null || connectedWallet === void 0 ? void 0 : connectedWallet.connector,
306
+ });
307
+ }
308
+ (_l = eventsCallbacks === null || eventsCallbacks === void 0 ? void 0 : eventsCallbacks.onLogout) === null || _l === void 0 ? void 0 : _l.call(eventsCallbacks, user);
300
309
  internalEventsRef.current.emit('logout');
301
310
  }), [
302
311
  clearAllWalletConnectSessions,
303
312
  walletsByChain,
313
+ toolkitEnabled,
304
314
  user,
305
- connectedWallet === null || connectedWallet === void 0 ? void 0 : connectedWallet.connector,
315
+ connectedWallet,
316
+ isVerificationInProgress,
317
+ setIsVerificationInProgress,
306
318
  setAuthMode,
307
319
  initialAuthenticationMode,
308
320
  setMultiWalletWidgetState,
@@ -382,6 +394,7 @@ const DynamicContextProvider = ({ children, theme, settings, locale, }) => {
382
394
  onConnectSuccess: eventsCallbacks === null || eventsCallbacks === void 0 ? void 0 : eventsCallbacks.onConnectSuccess,
383
395
  onEmailVerificationFailure,
384
396
  onEmailVerificationSuccess,
397
+ onEmbeddedWalletCreated: eventsCallbacks === null || eventsCallbacks === void 0 ? void 0 : eventsCallbacks.onEmbeddedWalletCreated,
385
398
  onLinkSuccess: eventsCallbacks === null || eventsCallbacks === void 0 ? void 0 : eventsCallbacks.onLinkSuccess,
386
399
  onUserProfileUpdate: eventsCallbacks === null || eventsCallbacks === void 0 ? void 0 : eventsCallbacks.onUserProfileUpdate,
387
400
  },