@dynamic-labs/sdk-react-core 2.0.0-alpha.10 → 2.0.0-alpha.11

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 (94) hide show
  1. package/CHANGELOG.md +27 -0
  2. package/package.cjs +1 -1
  3. package/package.js +1 -1
  4. package/package.json +13 -13
  5. package/src/lib/components/NetworkPicker/NetworkPicker.cjs +1 -4
  6. package/src/lib/components/NetworkPicker/NetworkPicker.js +1 -4
  7. package/src/lib/components/UserAddress/UserAddress.cjs +1 -1
  8. package/src/lib/components/UserAddress/UserAddress.js +1 -1
  9. package/src/lib/context/DynamicContext/DynamicContext.cjs +6 -7
  10. package/src/lib/context/DynamicContext/DynamicContext.js +6 -7
  11. package/src/lib/context/DynamicContext/hooks/useHandleLogout/types.d.ts +0 -1
  12. package/src/lib/context/DynamicContext/hooks/useHandleLogout/useHandleLogout.cjs +0 -1
  13. package/src/lib/context/DynamicContext/hooks/useHandleLogout/useHandleLogout.js +0 -1
  14. package/src/lib/context/DynamicContext/hooks/useTieCallbacksToEvents/useTieCallbacksToEvents.cjs +4 -0
  15. package/src/lib/context/DynamicContext/hooks/useTieCallbacksToEvents/useTieCallbacksToEvents.js +4 -0
  16. package/src/lib/context/DynamicContext/types/index.d.ts +2 -3
  17. package/src/lib/context/DynamicContext/useCustomerCallbacks/types.d.ts +2 -3
  18. package/src/lib/context/DynamicContext/useCustomerCallbacks/useCustomerCallbacks.cjs +2 -11
  19. package/src/lib/context/DynamicContext/useCustomerCallbacks/useCustomerCallbacks.d.ts +1 -1
  20. package/src/lib/context/DynamicContext/useCustomerCallbacks/useCustomerCallbacks.js +2 -11
  21. package/src/lib/context/DynamicContext/useDynamicContext/useDynamicContext.cjs +1 -2
  22. package/src/lib/context/DynamicContext/useDynamicContext/useDynamicContext.d.ts +1 -1
  23. package/src/lib/context/DynamicContext/useDynamicContext/useDynamicContext.js +1 -2
  24. package/src/lib/context/ErrorContext/ErrorContext.cjs +3 -0
  25. package/src/lib/context/ErrorContext/ErrorContext.js +3 -0
  26. package/src/lib/context/PhantomRedirectContext/PhantomRedirectContext.cjs +11 -3
  27. package/src/lib/context/PhantomRedirectContext/PhantomRedirectContext.js +11 -3
  28. package/src/lib/context/PhantomRedirectContext/useResponseHandlers.cjs +8 -1
  29. package/src/lib/context/PhantomRedirectContext/useResponseHandlers.d.ts +1 -0
  30. package/src/lib/context/PhantomRedirectContext/useResponseHandlers.js +8 -1
  31. package/src/lib/context/SocialRedirectContext/SocialRedirectContext.cjs +1 -1
  32. package/src/lib/context/SocialRedirectContext/SocialRedirectContext.js +1 -1
  33. package/src/lib/events/dynamicEvents.d.ts +2 -1
  34. package/src/lib/locale/en/translation.cjs +2 -0
  35. package/src/lib/locale/en/translation.d.ts +2 -0
  36. package/src/lib/locale/en/translation.js +2 -0
  37. package/src/lib/main.global.cjs +1 -1
  38. package/src/lib/main.global.js +1 -1
  39. package/src/lib/shared/types/connectionAndSignature.d.ts +2 -2
  40. package/src/lib/styles/index.shadow.cjs +1 -1
  41. package/src/lib/styles/index.shadow.js +1 -1
  42. package/src/lib/utils/functions/getVerifyArgs/getVerifyArgs.d.ts +2 -2
  43. package/src/lib/utils/functions/index.d.ts +1 -0
  44. package/src/lib/utils/functions/updateJWTAndCreateUserProfile/index.d.ts +1 -0
  45. package/src/lib/utils/functions/updateJWTAndCreateUserProfile/updateJWTAndCreateUserProfile.d.ts +1 -0
  46. package/src/lib/utils/hooks/authenticationHooks/useConnectAndSign/useConnectAndSign.cjs +2 -2
  47. package/src/lib/utils/hooks/authenticationHooks/useConnectAndSign/useConnectAndSign.d.ts +3 -3
  48. package/src/lib/utils/hooks/authenticationHooks/useConnectAndSign/useConnectAndSign.js +2 -2
  49. package/src/lib/utils/hooks/authenticationHooks/useConnectAndSignSplitSteps/useConnectAndSignSplitSteps.cjs +4 -4
  50. package/src/lib/utils/hooks/authenticationHooks/useConnectAndSignSplitSteps/useConnectAndSignSplitSteps.d.ts +4 -4
  51. package/src/lib/utils/hooks/authenticationHooks/useConnectAndSignSplitSteps/useConnectAndSignSplitSteps.js +4 -4
  52. package/src/lib/utils/hooks/authenticationHooks/useSignConnectOnlyUser/useSignConnectOnlyUser.cjs +2 -2
  53. package/src/lib/utils/hooks/authenticationHooks/useSignConnectOnlyUser/useSignConnectOnlyUser.d.ts +3 -3
  54. package/src/lib/utils/hooks/authenticationHooks/useSignConnectOnlyUser/useSignConnectOnlyUser.js +2 -2
  55. package/src/lib/utils/hooks/index.d.ts +1 -0
  56. package/src/lib/utils/hooks/useConnectWallet/useConnectWallet.cjs +3 -3
  57. package/src/lib/utils/hooks/useConnectWallet/useConnectWallet.d.ts +2 -2
  58. package/src/lib/utils/hooks/useConnectWallet/useConnectWallet.js +3 -3
  59. package/src/lib/utils/hooks/useCreateDynamicEmbeddedWalletMutation/useCreateDynamicEmbeddedWalletMutation.cjs +2 -6
  60. package/src/lib/utils/hooks/useCreateDynamicEmbeddedWalletMutation/useCreateDynamicEmbeddedWalletMutation.js +2 -6
  61. package/src/lib/utils/hooks/useEmbeddedWallet/useCoinbaseMPC/useCoinbaseMPC.cjs +7 -6
  62. package/src/lib/utils/hooks/useEmbeddedWallet/useCoinbaseMPC/useCoinbaseMPC.js +7 -6
  63. package/src/lib/utils/hooks/useEmbeddedWallet/useTurnkey/useTurnkey.cjs +1 -1
  64. package/src/lib/utils/hooks/useEmbeddedWallet/useTurnkey/useTurnkey.js +1 -1
  65. package/src/lib/utils/hooks/useFetchProjectSettings/useFetchProjectSettings.cjs +83 -90
  66. package/src/lib/utils/hooks/useFetchProjectSettings/useFetchProjectSettings.d.ts +2 -9
  67. package/src/lib/utils/hooks/useFetchProjectSettings/useFetchProjectSettings.js +86 -91
  68. package/src/lib/utils/hooks/usePromise/usePromise.cjs +1 -1
  69. package/src/lib/utils/hooks/usePromise/usePromise.js +1 -1
  70. package/src/lib/utils/hooks/useSendDynamicProps/index.d.ts +1 -0
  71. package/src/lib/utils/hooks/useSendDynamicProps/useSendDynamicProps.cjs +84 -0
  72. package/src/lib/utils/hooks/useSendDynamicProps/useSendDynamicProps.d.ts +11 -0
  73. package/src/lib/utils/hooks/useSendDynamicProps/useSendDynamicProps.js +78 -0
  74. package/src/lib/utils/hooks/useVerifyWallet/useVerifyWallet.cjs +4 -4
  75. package/src/lib/utils/hooks/useVerifyWallet/useVerifyWallet.d.ts +1 -1
  76. package/src/lib/utils/hooks/useVerifyWallet/useVerifyWallet.js +4 -4
  77. package/src/lib/utils/hooks/useWalletConnectorNetwork/useWalletConnectorNetwork.cjs +7 -4
  78. package/src/lib/utils/hooks/useWalletConnectorNetwork/useWalletConnectorNetwork.d.ts +1 -0
  79. package/src/lib/utils/hooks/useWalletConnectorNetwork/useWalletConnectorNetwork.js +7 -4
  80. package/src/lib/utils/hooks/useWalletConnectors/useWalletConnectors.cjs +1 -1
  81. package/src/lib/utils/hooks/useWalletConnectors/useWalletConnectors.js +1 -1
  82. package/src/lib/utils/hooks/useWalletEventListeners/useWalletEventListeners.cjs +0 -32
  83. package/src/lib/utils/hooks/useWalletEventListeners/useWalletEventListeners.d.ts +1 -6
  84. package/src/lib/utils/hooks/useWalletEventListeners/useWalletEventListeners.js +1 -33
  85. package/src/lib/utils/hooks/useWalletItemActions/useWalletItemActions.cjs +1 -1
  86. package/src/lib/utils/hooks/useWalletItemActions/useWalletItemActions.js +1 -1
  87. package/src/lib/views/EmbeddedReveal/EmbeddedRevealView/EmbeddedRevealView.cjs +7 -5
  88. package/src/lib/views/EmbeddedReveal/EmbeddedRevealView/EmbeddedRevealView.js +7 -5
  89. package/src/lib/views/TransactionConfirmationView/TransactionConfirmationView.cjs +4 -1
  90. package/src/lib/views/TransactionConfirmationView/TransactionConfirmationView.js +4 -1
  91. package/src/lib/views/WalletCannotBeTransferredView/WalletCannotBeTransferredView.cjs +9 -11
  92. package/src/lib/views/WalletCannotBeTransferredView/WalletCannotBeTransferredView.js +9 -11
  93. package/src/lib/views/WalletList/WalletList.cjs +9 -1
  94. package/src/lib/views/WalletList/WalletList.js +9 -1
@@ -95,7 +95,7 @@ const useVerifyWallet = ({ consumeNonce, displaySiweStatement, environmentId, pr
95
95
  // and need to distinguish between logic for verify or linking.
96
96
  const verifyOnly = !authToken;
97
97
  const shouldFallbackToConnectOnly = enableConnectOnlyFallback && (verifyOnly || !multiWalletEnabled);
98
- const generateJWT = (walletConnector, walletProvider, fetchPublicAddressOpts, publicWalletAddress, captchaToken, oauth, signedMessageOverride, messageToSignOverride) => _tslib.__awaiter(void 0, void 0, void 0, function* () {
98
+ const generateJWT = (walletConnector, walletProvider, getAddressOpts, publicWalletAddress, captchaToken, oauth, signedMessageOverride, messageToSignOverride) => _tslib.__awaiter(void 0, void 0, void 0, function* () {
99
99
  let Jwt;
100
100
  const nonce = consumeNonce();
101
101
  if (nonce === undefined)
@@ -103,7 +103,7 @@ const useVerifyWallet = ({ consumeNonce, displaySiweStatement, environmentId, pr
103
103
  const verifyArgs = yield getVerifyArgs.getVerifyArgs({
104
104
  displaySiweStatement,
105
105
  environmentId,
106
- fetchPublicAddressOpts,
106
+ getAddressOpts,
107
107
  messageToSignOverride,
108
108
  nonce,
109
109
  publicWalletAddress,
@@ -228,12 +228,12 @@ const useVerifyWallet = ({ consumeNonce, displaySiweStatement, environmentId, pr
228
228
  setErrorMessage(e.code);
229
229
  }
230
230
  };
231
- return ({ walletConnector, fetchPublicAddressOpts, publicWalletAddress, captchaToken, oauth, signedMessageOverride, messageToSignOverride, }) => _tslib.__awaiter(void 0, void 0, void 0, function* () {
231
+ return ({ walletConnector, getAddressOpts, publicWalletAddress, captchaToken, oauth, signedMessageOverride, messageToSignOverride, }) => _tslib.__awaiter(void 0, void 0, void 0, function* () {
232
232
  var _a;
233
233
  const walletProvider = getWalletProvider.getWalletProvider(walletConnector);
234
234
  try {
235
235
  setIsVerificationInProgress(true);
236
- const { Jwt, verifyArgs } = yield generateJWT(walletConnector, walletProvider, fetchPublicAddressOpts, publicWalletAddress, captchaToken, oauth, signedMessageOverride, messageToSignOverride);
236
+ const { Jwt, verifyArgs } = yield generateJWT(walletConnector, walletProvider, getAddressOpts, publicWalletAddress, captchaToken, oauth, signedMessageOverride, messageToSignOverride);
237
237
  const decodedJwt = decodeJwt.decodeJwt(Jwt);
238
238
  if (decodedJwt === undefined)
239
239
  throw new utils.DynamicError('Invalid token!');
@@ -8,5 +8,5 @@ type UseVerifyWalletArgs = {
8
8
  displaySiweStatement: boolean;
9
9
  setIsSingleWalletAccount: Dispatch<SetStateAction<boolean>>;
10
10
  };
11
- export declare const useVerifyWallet: ({ consumeNonce, displaySiweStatement, environmentId, projectSettings, setIsSingleWalletAccount, }: UseVerifyWalletArgs) => ({ walletConnector, fetchPublicAddressOpts, publicWalletAddress, captchaToken, oauth, signedMessageOverride, messageToSignOverride, }: VerifyCallbackArgs) => Promise<void>;
11
+ export declare const useVerifyWallet: ({ consumeNonce, displaySiweStatement, environmentId, projectSettings, setIsSingleWalletAccount, }: UseVerifyWalletArgs) => ({ walletConnector, getAddressOpts, publicWalletAddress, captchaToken, oauth, signedMessageOverride, messageToSignOverride, }: VerifyCallbackArgs) => Promise<void>;
12
12
  export {};
@@ -91,7 +91,7 @@ const useVerifyWallet = ({ consumeNonce, displaySiweStatement, environmentId, pr
91
91
  // and need to distinguish between logic for verify or linking.
92
92
  const verifyOnly = !authToken;
93
93
  const shouldFallbackToConnectOnly = enableConnectOnlyFallback && (verifyOnly || !multiWalletEnabled);
94
- const generateJWT = (walletConnector, walletProvider, fetchPublicAddressOpts, publicWalletAddress, captchaToken, oauth, signedMessageOverride, messageToSignOverride) => __awaiter(void 0, void 0, void 0, function* () {
94
+ const generateJWT = (walletConnector, walletProvider, getAddressOpts, publicWalletAddress, captchaToken, oauth, signedMessageOverride, messageToSignOverride) => __awaiter(void 0, void 0, void 0, function* () {
95
95
  let Jwt;
96
96
  const nonce = consumeNonce();
97
97
  if (nonce === undefined)
@@ -99,7 +99,7 @@ const useVerifyWallet = ({ consumeNonce, displaySiweStatement, environmentId, pr
99
99
  const verifyArgs = yield getVerifyArgs({
100
100
  displaySiweStatement,
101
101
  environmentId,
102
- fetchPublicAddressOpts,
102
+ getAddressOpts,
103
103
  messageToSignOverride,
104
104
  nonce,
105
105
  publicWalletAddress,
@@ -224,12 +224,12 @@ const useVerifyWallet = ({ consumeNonce, displaySiweStatement, environmentId, pr
224
224
  setErrorMessage(e.code);
225
225
  }
226
226
  };
227
- return ({ walletConnector, fetchPublicAddressOpts, publicWalletAddress, captchaToken, oauth, signedMessageOverride, messageToSignOverride, }) => __awaiter(void 0, void 0, void 0, function* () {
227
+ return ({ walletConnector, getAddressOpts, publicWalletAddress, captchaToken, oauth, signedMessageOverride, messageToSignOverride, }) => __awaiter(void 0, void 0, void 0, function* () {
228
228
  var _a;
229
229
  const walletProvider = getWalletProvider(walletConnector);
230
230
  try {
231
231
  setIsVerificationInProgress(true);
232
- const { Jwt, verifyArgs } = yield generateJWT(walletConnector, walletProvider, fetchPublicAddressOpts, publicWalletAddress, captchaToken, oauth, signedMessageOverride, messageToSignOverride);
232
+ const { Jwt, verifyArgs } = yield generateJWT(walletConnector, walletProvider, getAddressOpts, publicWalletAddress, captchaToken, oauth, signedMessageOverride, messageToSignOverride);
233
233
  const decodedJwt = decodeJwt(Jwt);
234
234
  if (decodedJwt === undefined)
235
235
  throw new DynamicError('Invalid token!');
@@ -23,10 +23,13 @@ var useWalletConnectorEvent = require('../events/useWalletConnectorEvent/useWall
23
23
  */
24
24
  const useWalletConnectorNetwork = (walletConnector) => {
25
25
  const [network, setNetwork] = React.useState();
26
- usePromise.usePromise(() => walletConnector === null || walletConnector === void 0 ? void 0 : walletConnector.getNetwork(), {
27
- onResolve: (network) => setNetwork(network),
26
+ const { isLoading } = usePromise.usePromise(() => walletConnector === null || walletConnector === void 0 ? void 0 : walletConnector.getNetwork(), {
27
+ deps: [walletConnector],
28
+ onResolve: (network) => {
29
+ setNetwork(network);
30
+ },
28
31
  });
29
- useWalletConnectorEvent.useWalletConnectorEvent(walletConnector || undefined, 'chainChange', ({ chain }) => setNetwork(chain));
32
+ useWalletConnectorEvent.useWalletConnectorEvent(walletConnector || undefined, 'chainChange', ({ chain }) => setNetwork((walletConnector === null || walletConnector === void 0 ? void 0 : walletConnector.connectedChain) === 'STARK' ? chain : parseInt(chain)));
30
33
  /**
31
34
  * Listen to disconnect event and update the network because ArgentX
32
35
  * emits a disconnect event when the user switches network.
@@ -36,7 +39,7 @@ const useWalletConnectorNetwork = (walletConnector) => {
36
39
  walletConnector.getNetwork().then(setNetwork);
37
40
  }
38
41
  });
39
- return { network };
42
+ return { isLoading, network };
40
43
  };
41
44
 
42
45
  exports.useWalletConnectorNetwork = useWalletConnectorNetwork;
@@ -14,5 +14,6 @@ import { WalletConnector } from '@dynamic-labs/wallet-connector-core';
14
14
  * return <div>Current Network: {network}</div>;
15
15
  */
16
16
  export declare const useWalletConnectorNetwork: (walletConnector: WalletConnector | null | undefined) => {
17
+ isLoading: boolean;
17
18
  network: string | number | undefined;
18
19
  };
@@ -19,10 +19,13 @@ import { useWalletConnectorEvent } from '../events/useWalletConnectorEvent/useWa
19
19
  */
20
20
  const useWalletConnectorNetwork = (walletConnector) => {
21
21
  const [network, setNetwork] = useState();
22
- usePromise(() => walletConnector === null || walletConnector === void 0 ? void 0 : walletConnector.getNetwork(), {
23
- onResolve: (network) => setNetwork(network),
22
+ const { isLoading } = usePromise(() => walletConnector === null || walletConnector === void 0 ? void 0 : walletConnector.getNetwork(), {
23
+ deps: [walletConnector],
24
+ onResolve: (network) => {
25
+ setNetwork(network);
26
+ },
24
27
  });
25
- useWalletConnectorEvent(walletConnector || undefined, 'chainChange', ({ chain }) => setNetwork(chain));
28
+ useWalletConnectorEvent(walletConnector || undefined, 'chainChange', ({ chain }) => setNetwork((walletConnector === null || walletConnector === void 0 ? void 0 : walletConnector.connectedChain) === 'STARK' ? chain : parseInt(chain)));
26
29
  /**
27
30
  * Listen to disconnect event and update the network because ArgentX
28
31
  * emits a disconnect event when the user switches network.
@@ -32,7 +35,7 @@ const useWalletConnectorNetwork = (walletConnector) => {
32
35
  walletConnector.getNetwork().then(setNetwork);
33
36
  }
34
37
  });
35
- return { network };
38
+ return { isLoading, network };
36
39
  };
37
40
 
38
41
  export { useWalletConnectorNetwork };
@@ -139,7 +139,7 @@ const useWalletConnectors = ({ authMode, authToken, connectedWallets, walletConn
139
139
  return;
140
140
  }
141
141
  /* istanbul ignore next */
142
- const publicAddress = yield newPrimaryWallet.connector.fetchPublicAddress({
142
+ const publicAddress = yield newPrimaryWallet.connector.getAddress({
143
143
  onDesktopUri: (uri) => _tslib.__awaiter(void 0, void 0, void 0, function* () {
144
144
  setDesktopUri(uri);
145
145
  }),
@@ -135,7 +135,7 @@ const useWalletConnectors = ({ authMode, authToken, connectedWallets, walletConn
135
135
  return;
136
136
  }
137
137
  /* istanbul ignore next */
138
- const publicAddress = yield newPrimaryWallet.connector.fetchPublicAddress({
138
+ const publicAddress = yield newPrimaryWallet.connector.getAddress({
139
139
  onDesktopUri: (uri) => __awaiter(void 0, void 0, void 0, function* () {
140
140
  setDesktopUri(uri);
141
141
  }),
@@ -20,26 +20,6 @@ require('../../../events/dynamicEvents.cjs');
20
20
  var useWalletConnectorEvent = require('../events/useWalletConnectorEvent/useWalletConnectorEvent.cjs');
21
21
 
22
22
  const useWalletEventListeners = ({ handleLogOut, multiWallet, multiWalletWidgetState, primaryWallet, secondaryWallets, selectedWalletConnector, selectedWalletWithAction, setSelectedWalletConnectorKey, setSelectedWalletWithAction, setMultiWalletWidgetState, user, setPrimaryWalletId, authMode, refreshConnectedWallet, }) => {
23
- const [loadingNetwork, setLoadingNetwork] = React.useState(true);
24
- const [network, setNetwork] = React.useState(undefined);
25
- React.useEffect(() => {
26
- const fetchNetwork = () => _tslib.__awaiter(void 0, void 0, void 0, function* () {
27
- try {
28
- if (!(primaryWallet === null || primaryWallet === void 0 ? void 0 : primaryWallet.connector))
29
- return;
30
- const network = yield primaryWallet.connector.getNetwork();
31
- setNetwork(network);
32
- }
33
- catch (error) {
34
- /* istanbul ignore next */
35
- logger.logger.debug(error);
36
- }
37
- finally {
38
- setLoadingNetwork(false);
39
- }
40
- });
41
- fetchNetwork();
42
- }, [primaryWallet === null || primaryWallet === void 0 ? void 0 : primaryWallet.connector]);
43
23
  useWalletConnectorEvent.useWalletConnectorEvent(primaryWallet === null || primaryWallet === void 0 ? void 0 : primaryWallet.connector, 'disconnect', () => {
44
24
  logger.logger.debug('primary wallet disconnect');
45
25
  handleLogOut();
@@ -50,13 +30,6 @@ const useWalletEventListeners = ({ handleLogOut, multiWallet, multiWalletWidgetS
50
30
  return;
51
31
  }
52
32
  refreshConnectedWallet(primaryWallet.id, primaryWallet.connector);
53
- // https://linear.app/dynamic-labs/issue/QNTM-84/breaking-change-rename-network-to-primarywalletnetwork
54
- if (primaryWallet.chain === 'starknet') {
55
- setNetwork(chain);
56
- }
57
- else {
58
- setNetwork(parseInt(chain));
59
- }
60
33
  });
61
34
  useWalletConnectorEvent.useWalletConnectorEvent(primaryWallet === null || primaryWallet === void 0 ? void 0 : primaryWallet.connector, 'accountChange', ({ accounts }) => {
62
35
  logger.logger.debug('primary wallet account change', {
@@ -167,11 +140,6 @@ const useWalletEventListeners = ({ handleLogOut, multiWallet, multiWalletWidgetS
167
140
  setSelectedWalletWithAction,
168
141
  setPrimaryWalletId,
169
142
  ]);
170
- return {
171
- loadingNetwork,
172
- network,
173
- setNetwork,
174
- };
175
143
  };
176
144
 
177
145
  exports.useWalletEventListeners = useWalletEventListeners;
@@ -1,4 +1,3 @@
1
- /// <reference types="react" />
2
1
  import type { WalletConnector } from '@dynamic-labs/wallet-connector-core';
3
2
  import { IDynamicContext } from '../../../context/DynamicContext/types';
4
3
  import { AuthModeType, MultiWalletWidgetState, UserProfile, Wallet, WalletWithAction } from '../../../shared';
@@ -19,8 +18,4 @@ export type UseWalletEventListenersArgs = {
19
18
  authMode: AuthModeType;
20
19
  refreshConnectedWallet: (walletId: string, walletConnector: WalletConnector, shouldCallCallback?: boolean) => Promise<void>;
21
20
  };
22
- export declare const useWalletEventListeners: ({ handleLogOut, multiWallet, multiWalletWidgetState, primaryWallet, secondaryWallets, selectedWalletConnector, selectedWalletWithAction, setSelectedWalletConnectorKey, setSelectedWalletWithAction, setMultiWalletWidgetState, user, setPrimaryWalletId, authMode, refreshConnectedWallet, }: UseWalletEventListenersArgs) => {
23
- loadingNetwork: boolean;
24
- network: string | number | undefined;
25
- setNetwork: import("react").Dispatch<import("react").SetStateAction<string | number | undefined>>;
26
- };
21
+ export declare const useWalletEventListeners: ({ handleLogOut, multiWallet, multiWalletWidgetState, primaryWallet, secondaryWallets, selectedWalletConnector, selectedWalletWithAction, setSelectedWalletConnectorKey, setSelectedWalletWithAction, setMultiWalletWidgetState, user, setPrimaryWalletId, authMode, refreshConnectedWallet, }: UseWalletEventListenersArgs) => void;
@@ -1,5 +1,5 @@
1
1
  import { __awaiter } from '../../../../../_virtual/_tslib.js';
2
- import { useState, useEffect, useMemo, useCallback } from 'react';
2
+ import { useMemo, useCallback } from 'react';
3
3
  import { isSameAddress } from '@dynamic-labs/wallet-connector-core';
4
4
  import '@dynamic-labs/sdk-api';
5
5
  import { logger } from '../../../shared/logger.js';
@@ -16,26 +16,6 @@ import '../../../events/dynamicEvents.js';
16
16
  import { useWalletConnectorEvent } from '../events/useWalletConnectorEvent/useWalletConnectorEvent.js';
17
17
 
18
18
  const useWalletEventListeners = ({ handleLogOut, multiWallet, multiWalletWidgetState, primaryWallet, secondaryWallets, selectedWalletConnector, selectedWalletWithAction, setSelectedWalletConnectorKey, setSelectedWalletWithAction, setMultiWalletWidgetState, user, setPrimaryWalletId, authMode, refreshConnectedWallet, }) => {
19
- const [loadingNetwork, setLoadingNetwork] = useState(true);
20
- const [network, setNetwork] = useState(undefined);
21
- useEffect(() => {
22
- const fetchNetwork = () => __awaiter(void 0, void 0, void 0, function* () {
23
- try {
24
- if (!(primaryWallet === null || primaryWallet === void 0 ? void 0 : primaryWallet.connector))
25
- return;
26
- const network = yield primaryWallet.connector.getNetwork();
27
- setNetwork(network);
28
- }
29
- catch (error) {
30
- /* istanbul ignore next */
31
- logger.debug(error);
32
- }
33
- finally {
34
- setLoadingNetwork(false);
35
- }
36
- });
37
- fetchNetwork();
38
- }, [primaryWallet === null || primaryWallet === void 0 ? void 0 : primaryWallet.connector]);
39
19
  useWalletConnectorEvent(primaryWallet === null || primaryWallet === void 0 ? void 0 : primaryWallet.connector, 'disconnect', () => {
40
20
  logger.debug('primary wallet disconnect');
41
21
  handleLogOut();
@@ -46,13 +26,6 @@ const useWalletEventListeners = ({ handleLogOut, multiWallet, multiWalletWidgetS
46
26
  return;
47
27
  }
48
28
  refreshConnectedWallet(primaryWallet.id, primaryWallet.connector);
49
- // https://linear.app/dynamic-labs/issue/QNTM-84/breaking-change-rename-network-to-primarywalletnetwork
50
- if (primaryWallet.chain === 'starknet') {
51
- setNetwork(chain);
52
- }
53
- else {
54
- setNetwork(parseInt(chain));
55
- }
56
29
  });
57
30
  useWalletConnectorEvent(primaryWallet === null || primaryWallet === void 0 ? void 0 : primaryWallet.connector, 'accountChange', ({ accounts }) => {
58
31
  logger.debug('primary wallet account change', {
@@ -163,11 +136,6 @@ const useWalletEventListeners = ({ handleLogOut, multiWallet, multiWalletWidgetS
163
136
  setSelectedWalletWithAction,
164
137
  setPrimaryWalletId,
165
138
  ]);
166
- return {
167
- loadingNetwork,
168
- network,
169
- setNetwork,
170
- };
171
139
  };
172
140
 
173
141
  export { useWalletEventListeners };
@@ -113,7 +113,7 @@ const useWalletItemActions = () => {
113
113
  }
114
114
  else {
115
115
  connectAndSignWallet({
116
- fetchPublicAddressOpts: {
116
+ getAddressOpts: {
117
117
  onDesktopUri: (uri) => _tslib.__awaiter(void 0, void 0, void 0, function* () {
118
118
  setDesktopUri(uri);
119
119
  }),
@@ -109,7 +109,7 @@ const useWalletItemActions = () => {
109
109
  }
110
110
  else {
111
111
  connectAndSignWallet({
112
- fetchPublicAddressOpts: {
112
+ getAddressOpts: {
113
113
  onDesktopUri: (uri) => __awaiter(void 0, void 0, void 0, function* () {
114
114
  setDesktopUri(uri);
115
115
  }),
@@ -102,14 +102,16 @@ const EmbeddedRevealView = ({ exportPrivateKey, }) => {
102
102
  const decodedJwt = decodeJwt.decodeJwt(authToken);
103
103
  const walletProperties = (_b = (_a = decodedJwt === null || decodedJwt === void 0 ? void 0 : decodedJwt.verifiedCredentials) === null || _a === void 0 ? void 0 : _a.find(({ walletName }) => walletName === null || walletName === void 0 ? void 0 : walletName.startsWith('turnkey'))) === null || _b === void 0 ? void 0 : _b.walletProperties;
104
104
  const isTurnkeyHDWallet = walletProperties === null || walletProperties === void 0 ? void 0 : walletProperties.turnkeyHDWalletId;
105
- const isCoinbaseMpcWallet = primaryWallet && walletConnectorCore.isCoinbaseMpcWalletConnector(primaryWallet.connector);
106
105
  const wallet = getEOAWallet.getEOAWallet(primaryWallet, (user === null || user === void 0 ? void 0 : user.verifiedCredentials) || []);
106
+ const isCoinbaseMpcWallet = wallet && walletConnectorCore.isCoinbaseMpcWalletConnector(wallet.connector);
107
107
  // eslint-disable-next-line arrow-body-style
108
108
  React.useEffect(() => {
109
109
  return () => {
110
- turnkeyExport.cleanupExport({
111
- wallet,
112
- });
110
+ if (isTurnkeyWallet) {
111
+ turnkeyExport.cleanupExport({
112
+ wallet,
113
+ });
114
+ }
113
115
  };
114
116
  // only run once on unmount
115
117
  // eslint-disable-next-line react-hooks/exhaustive-deps
@@ -130,7 +132,7 @@ const EmbeddedRevealView = ({ exportPrivateKey, }) => {
130
132
  const { mutate: handleExportWallet, isLoading, error, data, } = useMutation.useMutation(() => _tslib.__awaiter(void 0, void 0, void 0, function* () {
131
133
  const wallet = getEOAWallet.getEOAWallet(primaryWallet, (user === null || user === void 0 ? void 0 : user.verifiedCredentials) || []);
132
134
  if (isCoinbaseMpcWallet) {
133
- return primaryWallet.connector.exportWalletKeys();
135
+ return (wallet === null || wallet === void 0 ? void 0 : wallet.connector).exportWalletKeys();
134
136
  }
135
137
  if (isTurnkeyWallet) {
136
138
  return turnkeyExport.exportCredential({
@@ -98,14 +98,16 @@ const EmbeddedRevealView = ({ exportPrivateKey, }) => {
98
98
  const decodedJwt = decodeJwt(authToken);
99
99
  const walletProperties = (_b = (_a = decodedJwt === null || decodedJwt === void 0 ? void 0 : decodedJwt.verifiedCredentials) === null || _a === void 0 ? void 0 : _a.find(({ walletName }) => walletName === null || walletName === void 0 ? void 0 : walletName.startsWith('turnkey'))) === null || _b === void 0 ? void 0 : _b.walletProperties;
100
100
  const isTurnkeyHDWallet = walletProperties === null || walletProperties === void 0 ? void 0 : walletProperties.turnkeyHDWalletId;
101
- const isCoinbaseMpcWallet = primaryWallet && isCoinbaseMpcWalletConnector(primaryWallet.connector);
102
101
  const wallet = getEOAWallet(primaryWallet, (user === null || user === void 0 ? void 0 : user.verifiedCredentials) || []);
102
+ const isCoinbaseMpcWallet = wallet && isCoinbaseMpcWalletConnector(wallet.connector);
103
103
  // eslint-disable-next-line arrow-body-style
104
104
  useEffect(() => {
105
105
  return () => {
106
- cleanupExport({
107
- wallet,
108
- });
106
+ if (isTurnkeyWallet) {
107
+ cleanupExport({
108
+ wallet,
109
+ });
110
+ }
109
111
  };
110
112
  // only run once on unmount
111
113
  // eslint-disable-next-line react-hooks/exhaustive-deps
@@ -126,7 +128,7 @@ const EmbeddedRevealView = ({ exportPrivateKey, }) => {
126
128
  const { mutate: handleExportWallet, isLoading, error, data, } = useMutation(() => __awaiter(void 0, void 0, void 0, function* () {
127
129
  const wallet = getEOAWallet(primaryWallet, (user === null || user === void 0 ? void 0 : user.verifiedCredentials) || []);
128
130
  if (isCoinbaseMpcWallet) {
129
- return primaryWallet.connector.exportWalletKeys();
131
+ return (wallet === null || wallet === void 0 ? void 0 : wallet.connector).exportWalletKeys();
130
132
  }
131
133
  if (isTurnkeyWallet) {
132
134
  return exportCredential({
@@ -180,7 +180,10 @@ const TransactionConfirmationView = ({ transaction, onError, onSuccess, mutation
180
180
  t,
181
181
  currencySymbol,
182
182
  ]);
183
- return (jsxRuntime.jsxs(TransactionConfirmationPageLayout.TransactionConfirmationPageLayout, { onClickBack: onClickBack, onClickClose: onClickClose, copykey: copykey, title: title, appOrigin: appOrigin, appName: appName, appLogoUrl: appLogoUrl, isLoading: isLoading, onClickSend: () => send(), displayPoweredByDynamicFooter: displayPoweredByDynamicFooter, disableSendButton: isBalanceLoading, error: errorMessage, alert: alert, children: [jsxRuntime.jsx(TransactionRow.TransactionRow, { copykey: 'dyn_send_transaction.confirmation.data.from', label: t('dyn_send_transaction.confirmation.data.from'), title: transaction.from, children: shortenWalletAddress.shortenWalletAddress(transaction.from, 4, 4) }), jsxRuntime.jsx(TransactionRow.TransactionRow, { copykey: 'dyn_send_transaction.confirmation.data.to', label: t('dyn_send_transaction.confirmation.data.to'), title: transaction.to, children: transaction.to && shortenWalletAddress.shortenWalletAddress(transaction.to, 4, 4) }), jsxRuntime.jsx(TransactionRow.TransactionRow, { copykey: 'dyn_send_transaction.confirmation.data.amount', label: t('dyn_send_transaction.confirmation.data.amount'), isEmpty: !transaction.value, title: transaction.value ? transaction.format(transaction.value) : undefined, suffix: currencySymbol, icon: chain && jsxRuntime.jsx(ChainIcon.ChainIcon, { chain: chain, chainName: chainName }), dataTestId: 'transaction-amount', children: transaction.value
183
+ return (jsxRuntime.jsxs(TransactionConfirmationPageLayout.TransactionConfirmationPageLayout, { onClickBack: onClickBack, onClickClose: onClickClose, copykey: copykey, title: title, appOrigin: appOrigin, appName: appName, appLogoUrl: appLogoUrl, isLoading: isLoading, onClickSend: () => send(), displayPoweredByDynamicFooter: displayPoweredByDynamicFooter, disableSendButton: isBalanceLoading, error: errorMessage, alert: alert, children: [jsxRuntime.jsx(TransactionRow.TransactionRow, { copykey: 'dyn_send_transaction.confirmation.data.from', label: t('dyn_send_transaction.confirmation.data.from'), title: transaction.from, children: shortenWalletAddress.shortenWalletAddress(transaction.from, 4, 4) }), jsxRuntime.jsx(TransactionRow.TransactionRow, { copykey: 'dyn_send_transaction.confirmation.data.to', label: t('dyn_send_transaction.confirmation.data.to'), title: transaction.to, children: transaction.to &&
184
+ transaction.to === 'dyn_send_transaction.multiple_recipients'
185
+ ? t('dyn_send_transaction.multiple_recipients')
186
+ : shortenWalletAddress.shortenWalletAddress(transaction.to, 4, 4) }), jsxRuntime.jsx(TransactionRow.TransactionRow, { copykey: 'dyn_send_transaction.confirmation.data.amount', label: t('dyn_send_transaction.confirmation.data.amount'), isEmpty: !transaction.value, title: transaction.value ? transaction.format(transaction.value) : undefined, suffix: currencySymbol, icon: chain && jsxRuntime.jsx(ChainIcon.ChainIcon, { chain: chain, chainName: chainName }), dataTestId: 'transaction-amount', children: transaction.value
184
187
  ? transaction.format(transaction.value, {
185
188
  precision: DEFAULT_PRECISION,
186
189
  })
@@ -176,7 +176,10 @@ const TransactionConfirmationView = ({ transaction, onError, onSuccess, mutation
176
176
  t,
177
177
  currencySymbol,
178
178
  ]);
179
- return (jsxs(TransactionConfirmationPageLayout, { onClickBack: onClickBack, onClickClose: onClickClose, copykey: copykey, title: title, appOrigin: appOrigin, appName: appName, appLogoUrl: appLogoUrl, isLoading: isLoading, onClickSend: () => send(), displayPoweredByDynamicFooter: displayPoweredByDynamicFooter, disableSendButton: isBalanceLoading, error: errorMessage, alert: alert, children: [jsx(TransactionRow, { copykey: 'dyn_send_transaction.confirmation.data.from', label: t('dyn_send_transaction.confirmation.data.from'), title: transaction.from, children: shortenWalletAddress(transaction.from, 4, 4) }), jsx(TransactionRow, { copykey: 'dyn_send_transaction.confirmation.data.to', label: t('dyn_send_transaction.confirmation.data.to'), title: transaction.to, children: transaction.to && shortenWalletAddress(transaction.to, 4, 4) }), jsx(TransactionRow, { copykey: 'dyn_send_transaction.confirmation.data.amount', label: t('dyn_send_transaction.confirmation.data.amount'), isEmpty: !transaction.value, title: transaction.value ? transaction.format(transaction.value) : undefined, suffix: currencySymbol, icon: chain && jsx(ChainIcon, { chain: chain, chainName: chainName }), dataTestId: 'transaction-amount', children: transaction.value
179
+ return (jsxs(TransactionConfirmationPageLayout, { onClickBack: onClickBack, onClickClose: onClickClose, copykey: copykey, title: title, appOrigin: appOrigin, appName: appName, appLogoUrl: appLogoUrl, isLoading: isLoading, onClickSend: () => send(), displayPoweredByDynamicFooter: displayPoweredByDynamicFooter, disableSendButton: isBalanceLoading, error: errorMessage, alert: alert, children: [jsx(TransactionRow, { copykey: 'dyn_send_transaction.confirmation.data.from', label: t('dyn_send_transaction.confirmation.data.from'), title: transaction.from, children: shortenWalletAddress(transaction.from, 4, 4) }), jsx(TransactionRow, { copykey: 'dyn_send_transaction.confirmation.data.to', label: t('dyn_send_transaction.confirmation.data.to'), title: transaction.to, children: transaction.to &&
180
+ transaction.to === 'dyn_send_transaction.multiple_recipients'
181
+ ? t('dyn_send_transaction.multiple_recipients')
182
+ : shortenWalletAddress(transaction.to, 4, 4) }), jsx(TransactionRow, { copykey: 'dyn_send_transaction.confirmation.data.amount', label: t('dyn_send_transaction.confirmation.data.amount'), isEmpty: !transaction.value, title: transaction.value ? transaction.format(transaction.value) : undefined, suffix: currencySymbol, icon: chain && jsx(ChainIcon, { chain: chain, chainName: chainName }), dataTestId: 'transaction-amount', children: transaction.value
180
183
  ? transaction.format(transaction.value, {
181
184
  precision: DEFAULT_PRECISION,
182
185
  })
@@ -4,9 +4,9 @@ Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var _tslib = require('../../../../_virtual/_tslib.cjs');
6
6
  var jsxRuntime = require('react/jsx-runtime');
7
- var React = require('react');
8
7
  var reactI18next = require('react-i18next');
9
8
  var walletBook = require('@dynamic-labs/wallet-book');
9
+ require('react');
10
10
  require('../../events/dynamicEvents.cjs');
11
11
  require('@dynamic-labs/utils');
12
12
  require('../../context/DynamicContext/DynamicContext.cjs');
@@ -33,6 +33,7 @@ require('../../context/AccountExistsContext/AccountExistsContext.cjs');
33
33
  require('../../context/VerificationContext/VerificationContext.cjs');
34
34
  require('react-dom');
35
35
  require('../../context/WalletContext/WalletContext.cjs');
36
+ var usePromise = require('../../utils/hooks/usePromise/usePromise.cjs');
36
37
  require('../../context/ThemeContext/ThemeContext.cjs');
37
38
  require('@dynamic-labs/types');
38
39
  require('yup');
@@ -77,19 +78,16 @@ require('@hcaptcha/react-hcaptcha');
77
78
  require('../LoginView/sections/PhoneNumberSignInSection/usePhoneInputLogic/usePhoneInputLogic.cjs');
78
79
 
79
80
  const WalletCannotBeTransferredView = () => {
80
- const [walletAddress, setWalletAddress] = React.useState(undefined);
81
81
  const { goToInitialView } = ViewContext.useViewContext();
82
82
  const { selectedWalletConnector: walletConnector } = useInternalDynamicContext.useInternalDynamicContext();
83
83
  const { t } = reactI18next.useTranslation();
84
- React.useEffect(() => {
85
- const _fetchPublicAddress = () => _tslib.__awaiter(void 0, void 0, void 0, function* () {
86
- const address = yield (walletConnector === null || walletConnector === void 0 ? void 0 : walletConnector.fetchPublicAddress());
87
- setWalletAddress(address);
88
- });
89
- _fetchPublicAddress();
90
- }, [walletConnector]);
91
- const _shortenWalletAddress = shortenWalletAddress.shortenWalletAddress(walletAddress);
92
- return (jsxRuntime.jsxs("div", { className: 'wallet-cannot-be-transferred-view__container', children: [jsxRuntime.jsx(Typography.Typography, { className: 'wallet-cannot-be-transferred-view__title', as: 'h6', variant: 'title', color: 'primary', weight: 'medium', copykey: 'dyn_wallet_link.cannot_link.title', children: t('dyn_wallet_link.cannot_link.title') }), jsxRuntime.jsx("div", { className: 'wallet-cannot-be-transferred-view__icon', children: jsxRuntime.jsx(walletBook.WalletIcon, { walletKey: walletConnector === null || walletConnector === void 0 ? void 0 : walletConnector.key, width: 64, height: 64 }) }), jsxRuntime.jsx(Typography.Typography, { className: 'wallet-cannot-be-transferred-view__shorten-wallet-address', variant: 'body_normal', weight: 'regular', color: 'primary', children: _shortenWalletAddress }), jsxRuntime.jsx(Typography.Typography, { className: 'wallet-cannot-be-transferred-view__copy', variant: 'body_normal', color: 'secondary', weight: 'regular', copykey: 'dyn_wallet_link.cannot_link.description', children: t('dyn_wallet_link.cannot_link.description') }), jsxRuntime.jsx(Button.Button, { buttonClassName: 'wallet-cannot-be-transferred-view__transfer-alt-wallet-button', buttonVariant: 'primary', expanded: true, buttonPadding: 'large', onClick: goToInitialView, dataTestId: 'wallet-cannot-be-transferred-view-transfer-alt-wallet', copykey: 'dyn_wallet_link.cannot_link.link_other_button', children: t('dyn_wallet_link.cannot_link.link_other_button') }), jsxRuntime.jsx(Button.Button, { dataTestId: 'wallet-cannot-be-transferred-view-cancel', buttonPadding: 'small', buttonClassName: 'wallet-cannot-be-transferred-view__cancel', onClick: goToInitialView, copykey: 'dyn_wallet_link.cannot_link.cancel_button', children: t('dyn_wallet_link.cannot_link.cancel_button') })] }));
84
+ const { data: walletAddress } = usePromise.usePromise(() => _tslib.__awaiter(void 0, void 0, void 0, function* () {
85
+ const accounts = yield (walletConnector === null || walletConnector === void 0 ? void 0 : walletConnector.getConnectedAccounts());
86
+ return shortenWalletAddress.shortenWalletAddress(accounts === null || accounts === void 0 ? void 0 : accounts[0]);
87
+ }), {
88
+ deps: [walletConnector],
89
+ });
90
+ return (jsxRuntime.jsxs("div", { className: 'wallet-cannot-be-transferred-view__container', children: [jsxRuntime.jsx(Typography.Typography, { className: 'wallet-cannot-be-transferred-view__title', as: 'h6', variant: 'title', color: 'primary', weight: 'medium', copykey: 'dyn_wallet_link.cannot_link.title', children: t('dyn_wallet_link.cannot_link.title') }), jsxRuntime.jsx("div", { className: 'wallet-cannot-be-transferred-view__icon', children: jsxRuntime.jsx(walletBook.WalletIcon, { walletKey: walletConnector === null || walletConnector === void 0 ? void 0 : walletConnector.key, width: 64, height: 64 }) }), jsxRuntime.jsx(Typography.Typography, { className: 'wallet-cannot-be-transferred-view__shorten-wallet-address', variant: 'body_normal', weight: 'regular', color: 'primary', children: walletAddress }), jsxRuntime.jsx(Typography.Typography, { className: 'wallet-cannot-be-transferred-view__copy', variant: 'body_normal', color: 'secondary', weight: 'regular', copykey: 'dyn_wallet_link.cannot_link.description', children: t('dyn_wallet_link.cannot_link.description') }), jsxRuntime.jsx(Button.Button, { buttonClassName: 'wallet-cannot-be-transferred-view__transfer-alt-wallet-button', buttonVariant: 'primary', expanded: true, buttonPadding: 'large', onClick: goToInitialView, dataTestId: 'wallet-cannot-be-transferred-view-transfer-alt-wallet', copykey: 'dyn_wallet_link.cannot_link.link_other_button', children: t('dyn_wallet_link.cannot_link.link_other_button') }), jsxRuntime.jsx(Button.Button, { dataTestId: 'wallet-cannot-be-transferred-view-cancel', buttonPadding: 'small', buttonClassName: 'wallet-cannot-be-transferred-view__cancel', onClick: goToInitialView, copykey: 'dyn_wallet_link.cannot_link.cancel_button', children: t('dyn_wallet_link.cannot_link.cancel_button') })] }));
93
91
  };
94
92
 
95
93
  exports.WalletCannotBeTransferredView = WalletCannotBeTransferredView;
@@ -1,8 +1,8 @@
1
1
  import { __awaiter } from '../../../../_virtual/_tslib.js';
2
2
  import { jsxs, jsx } from 'react/jsx-runtime';
3
- import { useState, useEffect } from 'react';
4
3
  import { useTranslation } from 'react-i18next';
5
4
  import { WalletIcon } from '@dynamic-labs/wallet-book';
5
+ import 'react';
6
6
  import '../../events/dynamicEvents.js';
7
7
  import '@dynamic-labs/utils';
8
8
  import '../../context/DynamicContext/DynamicContext.js';
@@ -29,6 +29,7 @@ import '../../context/AccountExistsContext/AccountExistsContext.js';
29
29
  import '../../context/VerificationContext/VerificationContext.js';
30
30
  import 'react-dom';
31
31
  import '../../context/WalletContext/WalletContext.js';
32
+ import { usePromise } from '../../utils/hooks/usePromise/usePromise.js';
32
33
  import '../../context/ThemeContext/ThemeContext.js';
33
34
  import '@dynamic-labs/types';
34
35
  import 'yup';
@@ -73,19 +74,16 @@ import '@hcaptcha/react-hcaptcha';
73
74
  import '../LoginView/sections/PhoneNumberSignInSection/usePhoneInputLogic/usePhoneInputLogic.js';
74
75
 
75
76
  const WalletCannotBeTransferredView = () => {
76
- const [walletAddress, setWalletAddress] = useState(undefined);
77
77
  const { goToInitialView } = useViewContext();
78
78
  const { selectedWalletConnector: walletConnector } = useInternalDynamicContext();
79
79
  const { t } = useTranslation();
80
- useEffect(() => {
81
- const _fetchPublicAddress = () => __awaiter(void 0, void 0, void 0, function* () {
82
- const address = yield (walletConnector === null || walletConnector === void 0 ? void 0 : walletConnector.fetchPublicAddress());
83
- setWalletAddress(address);
84
- });
85
- _fetchPublicAddress();
86
- }, [walletConnector]);
87
- const _shortenWalletAddress = shortenWalletAddress(walletAddress);
88
- return (jsxs("div", { className: 'wallet-cannot-be-transferred-view__container', children: [jsx(Typography, { className: 'wallet-cannot-be-transferred-view__title', as: 'h6', variant: 'title', color: 'primary', weight: 'medium', copykey: 'dyn_wallet_link.cannot_link.title', children: t('dyn_wallet_link.cannot_link.title') }), jsx("div", { className: 'wallet-cannot-be-transferred-view__icon', children: jsx(WalletIcon, { walletKey: walletConnector === null || walletConnector === void 0 ? void 0 : walletConnector.key, width: 64, height: 64 }) }), jsx(Typography, { className: 'wallet-cannot-be-transferred-view__shorten-wallet-address', variant: 'body_normal', weight: 'regular', color: 'primary', children: _shortenWalletAddress }), jsx(Typography, { className: 'wallet-cannot-be-transferred-view__copy', variant: 'body_normal', color: 'secondary', weight: 'regular', copykey: 'dyn_wallet_link.cannot_link.description', children: t('dyn_wallet_link.cannot_link.description') }), jsx(Button, { buttonClassName: 'wallet-cannot-be-transferred-view__transfer-alt-wallet-button', buttonVariant: 'primary', expanded: true, buttonPadding: 'large', onClick: goToInitialView, dataTestId: 'wallet-cannot-be-transferred-view-transfer-alt-wallet', copykey: 'dyn_wallet_link.cannot_link.link_other_button', children: t('dyn_wallet_link.cannot_link.link_other_button') }), jsx(Button, { dataTestId: 'wallet-cannot-be-transferred-view-cancel', buttonPadding: 'small', buttonClassName: 'wallet-cannot-be-transferred-view__cancel', onClick: goToInitialView, copykey: 'dyn_wallet_link.cannot_link.cancel_button', children: t('dyn_wallet_link.cannot_link.cancel_button') })] }));
80
+ const { data: walletAddress } = usePromise(() => __awaiter(void 0, void 0, void 0, function* () {
81
+ const accounts = yield (walletConnector === null || walletConnector === void 0 ? void 0 : walletConnector.getConnectedAccounts());
82
+ return shortenWalletAddress(accounts === null || accounts === void 0 ? void 0 : accounts[0]);
83
+ }), {
84
+ deps: [walletConnector],
85
+ });
86
+ return (jsxs("div", { className: 'wallet-cannot-be-transferred-view__container', children: [jsx(Typography, { className: 'wallet-cannot-be-transferred-view__title', as: 'h6', variant: 'title', color: 'primary', weight: 'medium', copykey: 'dyn_wallet_link.cannot_link.title', children: t('dyn_wallet_link.cannot_link.title') }), jsx("div", { className: 'wallet-cannot-be-transferred-view__icon', children: jsx(WalletIcon, { walletKey: walletConnector === null || walletConnector === void 0 ? void 0 : walletConnector.key, width: 64, height: 64 }) }), jsx(Typography, { className: 'wallet-cannot-be-transferred-view__shorten-wallet-address', variant: 'body_normal', weight: 'regular', color: 'primary', children: walletAddress }), jsx(Typography, { className: 'wallet-cannot-be-transferred-view__copy', variant: 'body_normal', color: 'secondary', weight: 'regular', copykey: 'dyn_wallet_link.cannot_link.description', children: t('dyn_wallet_link.cannot_link.description') }), jsx(Button, { buttonClassName: 'wallet-cannot-be-transferred-view__transfer-alt-wallet-button', buttonVariant: 'primary', expanded: true, buttonPadding: 'large', onClick: goToInitialView, dataTestId: 'wallet-cannot-be-transferred-view-transfer-alt-wallet', copykey: 'dyn_wallet_link.cannot_link.link_other_button', children: t('dyn_wallet_link.cannot_link.link_other_button') }), jsx(Button, { dataTestId: 'wallet-cannot-be-transferred-view-cancel', buttonPadding: 'small', buttonClassName: 'wallet-cannot-be-transferred-view__cancel', onClick: goToInitialView, copykey: 'dyn_wallet_link.cannot_link.cancel_button', children: t('dyn_wallet_link.cannot_link.cancel_button') })] }));
89
87
  };
90
88
 
91
89
  export { WalletCannotBeTransferredView };
@@ -124,6 +124,7 @@ const WalletList = ({ isWalletConnectList = false, }) => {
124
124
  });
125
125
  const isSearchEnabled = numberOfWallets > defaultNumberOfWalletsToShow &&
126
126
  walletsList.length !== numberOfWallets;
127
+ const isTabsEnabled = Boolean((tabsItems === null || tabsItems === void 0 ? void 0 : tabsItems.length) && !isLinkingWallet);
127
128
  const walletListScrollRef = React.useRef(null);
128
129
  /* istanbul ignore next */
129
130
  const handleScroll = () => {
@@ -145,8 +146,15 @@ const WalletList = ({ isWalletConnectList = false, }) => {
145
146
  const searchContainer = !projectSettings ? (jsxRuntime.jsx(Skeleton.Skeleton, { className: 'wallet-list__search-skeleton' })) : (isSearchEnabled && (jsxRuntime.jsx("div", { className: classNames.classNames('wallet-list__search-container', {
146
147
  'wallet-list__search-container--scroll': !error,
147
148
  }), children: jsxRuntime.jsx(Search.Search, { copykey: 'dyn_wallet_list.search.label', label: t('dyn_wallet_list.search.label', { numberOfWallets }), value: filterValue, onChange: ({ target: { value } }) => handleFilterValueChange(value), onClickClear: () => handleFilterValueChange('') }) })));
148
- return (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [(tabsItems === null || tabsItems === void 0 ? void 0 : tabsItems.length) && !isLinkingWallet && (jsxRuntime.jsx("div", { className: 'wallet-list__tabs-container', children: jsxRuntime.jsx(WalletListGridTabs.WalletListGridTabs, { items: tabsItems, value: selectedTabIndex || 0, onSelect: setSelectedTabIndex }) })), searchContainer, Boolean(error) && (jsxRuntime.jsx(ErrorContainer.ErrorContainer, { className: 'wallet-list__error-container', withIcon: false, children: error })), jsxRuntime.jsx("div", { className: 'wallet-list__container', children: jsxRuntime.jsxs("div", { className: classNames.classNames('wallet-list__scroll-container', {
149
+ return (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [isTabsEnabled && (jsxRuntime.jsx("div", { className: 'wallet-list__tabs-container', children: jsxRuntime.jsx(WalletListGridTabs.WalletListGridTabs
150
+ // The tabsItems nullable assertion is safe here because isTabsEnabled is true
151
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
152
+ , {
153
+ // The tabsItems nullable assertion is safe here because isTabsEnabled is true
154
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
155
+ items: tabsItems, value: selectedTabIndex || 0, onSelect: setSelectedTabIndex }) })), searchContainer, Boolean(error) && (jsxRuntime.jsx(ErrorContainer.ErrorContainer, { className: 'wallet-list__error-container', withIcon: false, children: error })), jsxRuntime.jsx("div", { className: 'wallet-list__container', children: jsxRuntime.jsxs("div", { className: classNames.classNames('wallet-list__scroll-container', {
149
156
  'wallet-list__scroll-container--error': Boolean(error),
157
+ 'wallet-list__scroll-container--fixed-height': isTabsEnabled,
150
158
  }), "data-testid": 'wallet-list-scroll-container', ref: walletListScrollRef, onScroll: handleScroll, children: [!projectSettings ? (jsxRuntime.jsx(Skeleton.Skeleton, { count: 10, className: 'wallet-list__tile-skeleton' })) : (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [walletConnectorOptions.length === 0 && (jsxRuntime.jsx(ErrorContainer.ErrorContainer, { copykey: 'dyn_wallet_list.configuration_mismatch', children: t('dyn_wallet_list.configuration_mismatch') })), walletConnectorOptions.length && walletsList.length === 0 ? (jsxRuntime.jsx(SearchNotFoundMessage.SearchNotFoundMessage, { title: t('dyn_wallet_list.search.not_found.title'), subtitle: t('dyn_wallet_list.search.not_found.description'), image: jsxRuntime.jsx(noWalletFound.ReactComponent, {}) })) : (walletsList.map((wallet, index) => (jsxRuntime.jsx(WalletListItem.WalletListItem, { wallet: wallet, onResetSearchValue: () => handleFilterValueChange(''), recommendedWallets: effectiveRecommendedWallets }, `${wallet.key}_${index}`))))] })), isSearchEnabled && !filterValue && projectSettings && (jsxRuntime.jsx(SearchNotFoundMessage.SearchNotFoundMessage, {}))] }) }), showDefaultFooter && (jsxRuntime.jsx(DefaultFooter.DefaultFooter, { hideBorder: !footerBorderIsVisible }))] }));
151
159
  };
152
160
 
@@ -120,6 +120,7 @@ const WalletList = ({ isWalletConnectList = false, }) => {
120
120
  });
121
121
  const isSearchEnabled = numberOfWallets > defaultNumberOfWalletsToShow &&
122
122
  walletsList.length !== numberOfWallets;
123
+ const isTabsEnabled = Boolean((tabsItems === null || tabsItems === void 0 ? void 0 : tabsItems.length) && !isLinkingWallet);
123
124
  const walletListScrollRef = useRef(null);
124
125
  /* istanbul ignore next */
125
126
  const handleScroll = () => {
@@ -141,8 +142,15 @@ const WalletList = ({ isWalletConnectList = false, }) => {
141
142
  const searchContainer = !projectSettings ? (jsx(Skeleton, { className: 'wallet-list__search-skeleton' })) : (isSearchEnabled && (jsx("div", { className: classNames('wallet-list__search-container', {
142
143
  'wallet-list__search-container--scroll': !error,
143
144
  }), children: jsx(Search, { copykey: 'dyn_wallet_list.search.label', label: t('dyn_wallet_list.search.label', { numberOfWallets }), value: filterValue, onChange: ({ target: { value } }) => handleFilterValueChange(value), onClickClear: () => handleFilterValueChange('') }) })));
144
- return (jsxs(Fragment, { children: [(tabsItems === null || tabsItems === void 0 ? void 0 : tabsItems.length) && !isLinkingWallet && (jsx("div", { className: 'wallet-list__tabs-container', children: jsx(WalletListGridTabs, { items: tabsItems, value: selectedTabIndex || 0, onSelect: setSelectedTabIndex }) })), searchContainer, Boolean(error) && (jsx(ErrorContainer, { className: 'wallet-list__error-container', withIcon: false, children: error })), jsx("div", { className: 'wallet-list__container', children: jsxs("div", { className: classNames('wallet-list__scroll-container', {
145
+ return (jsxs(Fragment, { children: [isTabsEnabled && (jsx("div", { className: 'wallet-list__tabs-container', children: jsx(WalletListGridTabs
146
+ // The tabsItems nullable assertion is safe here because isTabsEnabled is true
147
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
148
+ , {
149
+ // The tabsItems nullable assertion is safe here because isTabsEnabled is true
150
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
151
+ items: tabsItems, value: selectedTabIndex || 0, onSelect: setSelectedTabIndex }) })), searchContainer, Boolean(error) && (jsx(ErrorContainer, { className: 'wallet-list__error-container', withIcon: false, children: error })), jsx("div", { className: 'wallet-list__container', children: jsxs("div", { className: classNames('wallet-list__scroll-container', {
145
152
  'wallet-list__scroll-container--error': Boolean(error),
153
+ 'wallet-list__scroll-container--fixed-height': isTabsEnabled,
146
154
  }), "data-testid": 'wallet-list-scroll-container', ref: walletListScrollRef, onScroll: handleScroll, children: [!projectSettings ? (jsx(Skeleton, { count: 10, className: 'wallet-list__tile-skeleton' })) : (jsxs(Fragment, { children: [walletConnectorOptions.length === 0 && (jsx(ErrorContainer, { copykey: 'dyn_wallet_list.configuration_mismatch', children: t('dyn_wallet_list.configuration_mismatch') })), walletConnectorOptions.length && walletsList.length === 0 ? (jsx(SearchNotFoundMessage, { title: t('dyn_wallet_list.search.not_found.title'), subtitle: t('dyn_wallet_list.search.not_found.description'), image: jsx(SvgNoWalletFound, {}) })) : (walletsList.map((wallet, index) => (jsx(WalletListItem, { wallet: wallet, onResetSearchValue: () => handleFilterValueChange(''), recommendedWallets: effectiveRecommendedWallets }, `${wallet.key}_${index}`))))] })), isSearchEnabled && !filterValue && projectSettings && (jsx(SearchNotFoundMessage, {}))] }) }), showDefaultFooter && (jsx(DefaultFooter, { hideBorder: !footerBorderIsVisible }))] }));
147
155
  };
148
156