@openfort/react 1.0.6 → 1.0.8

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 (53) hide show
  1. package/build/assets/icons.js +1 -1
  2. package/build/components/Common/WalletRecoveryIcon/index.d.ts +1 -0
  3. package/build/components/Common/WalletRecoveryIcon/index.js +6 -1
  4. package/build/components/Common/WalletRecoveryIcon/index.js.map +1 -1
  5. package/build/components/ConnectModal/ConnectWithInjector/index.js +4 -4
  6. package/build/components/ConnectModal/ConnectWithMobile.js +10 -8
  7. package/build/components/ConnectModal/ConnectWithMobile.js.map +1 -1
  8. package/build/components/ConnectModal/ConnectWithOAuth.js +5 -1
  9. package/build/components/ConnectModal/ConnectWithOAuth.js.map +1 -1
  10. package/build/components/ConnectModal/index.js +3 -3
  11. package/build/components/Openfort/OpenfortProvider.js +4 -0
  12. package/build/components/Openfort/OpenfortProvider.js.map +1 -1
  13. package/build/components/Pages/Connected/EthereumConnected.js +7 -4
  14. package/build/components/Pages/Connected/EthereumConnected.js.map +1 -1
  15. package/build/components/Pages/Connected/SolanaConnected.js +1 -1
  16. package/build/components/Pages/Connectors/index.js +1 -55
  17. package/build/components/Pages/Connectors/index.js.map +1 -1
  18. package/build/components/Pages/LinkedProvider/index.js +7 -2
  19. package/build/components/Pages/LinkedProvider/index.js.map +1 -1
  20. package/build/components/Pages/LoadWallets/index.js +35 -28
  21. package/build/components/Pages/LoadWallets/index.js.map +1 -1
  22. package/build/components/Pages/RemoveLinkedProvider/index.js +5 -1
  23. package/build/components/Pages/RemoveLinkedProvider/index.js.map +1 -1
  24. package/build/components/Pages/SelectWalletToRecover/index.js +41 -3
  25. package/build/components/Pages/SelectWalletToRecover/index.js.map +1 -1
  26. package/build/ethereum/hooks/useEthereumEmbeddedWallet.js +5 -1
  27. package/build/ethereum/hooks/useEthereumEmbeddedWallet.js.map +1 -1
  28. package/build/hooks/openfort/auth/useAuthCallback.d.ts +1 -1
  29. package/build/hooks/openfort/auth/useAuthCallback.js +24 -8
  30. package/build/hooks/openfort/auth/useAuthCallback.js.map +1 -1
  31. package/build/hooks/useResolvedIdentity.js +4 -1
  32. package/build/hooks/useResolvedIdentity.js.map +1 -1
  33. package/build/openfort/CoreOpenfortProvider.js +1 -0
  34. package/build/openfort/CoreOpenfortProvider.js.map +1 -1
  35. package/build/openfort/hooks/useActiveAddressSync.d.ts +7 -3
  36. package/build/openfort/hooks/useActiveAddressSync.js +37 -7
  37. package/build/openfort/hooks/useActiveAddressSync.js.map +1 -1
  38. package/build/solana/hooks/useSolanaEmbeddedWallet.js +1 -1
  39. package/build/utils/rpc.d.ts +0 -4
  40. package/build/utils/rpc.js +5 -1
  41. package/build/utils/rpc.js.map +1 -1
  42. package/build/utils/urlSecurity.d.ts +28 -0
  43. package/build/utils/urlSecurity.js +56 -0
  44. package/build/utils/urlSecurity.js.map +1 -0
  45. package/build/version.d.ts +1 -1
  46. package/build/version.js +1 -1
  47. package/build/wagmi/useConnectWithSiwe.js +35 -29
  48. package/build/wagmi/useConnectWithSiwe.js.map +1 -1
  49. package/build/wagmi/useEmbeddedWalletWagmiSync.js +21 -1
  50. package/build/wagmi/useEmbeddedWalletWagmiSync.js.map +1 -1
  51. package/build/wagmi/useWalletAuth.js +7 -0
  52. package/build/wagmi/useWalletAuth.js.map +1 -1
  53. package/package.json +2 -3
@@ -1 +1 @@
1
- {"version":3,"file":"useConnectWithSiwe.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"useConnectWithSiwe.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1,7 +1,8 @@
1
- import { useEffect } from 'react';
1
+ import { useRef, useEffect } from 'react';
2
2
  import { useAccount, useConnect, useDisconnect } from 'wagmi';
3
3
  import { embeddedWalletId } from '../constants/openfort.js';
4
4
  import { useEthereumEmbeddedWallet } from '../ethereum/hooks/useEthereumEmbeddedWallet.js';
5
+ import { logger } from '../utils/logger.js';
5
6
  import { setEmbeddedWalletProvider } from './embeddedConnector.js';
6
7
 
7
8
  /** Null component — rendered inside CoreOpenfortProvider + WagmiProvider to sync embedded wallet into wagmi. */
@@ -16,6 +17,16 @@ function useEmbeddedWalletWagmiSync() {
16
17
  const { disconnectAsync } = useDisconnect();
17
18
  const status = wallet.status;
18
19
  const provider = status === 'connected' ? wallet.provider : null;
20
+ // Track whether an external wallet was explicitly connected — don't override it
21
+ const externalConnectorActiveRef = useRef(false);
22
+ useEffect(() => {
23
+ if (activeConnector && activeConnector.id !== embeddedWalletId) {
24
+ externalConnectorActiveRef.current = true;
25
+ }
26
+ else if (!activeConnector || activeConnector.id === embeddedWalletId) {
27
+ externalConnectorActiveRef.current = false;
28
+ }
29
+ }, [activeConnector]);
19
30
  // Keep the module-level provider slot in sync — clear on disconnect
20
31
  useEffect(() => {
21
32
  if (status === 'connected' && provider) {
@@ -26,6 +37,7 @@ function useEmbeddedWalletWagmiSync() {
26
37
  }
27
38
  }, [status, provider]);
28
39
  // Connect wagmi once the embedded wallet is ready AND wagmi has settled (not mid-reconnect)
40
+ // BUT do NOT override an explicitly connected external wallet
29
41
  useEffect(() => {
30
42
  if (status !== 'connected' || !provider)
31
43
  return;
@@ -33,9 +45,17 @@ function useEmbeddedWalletWagmiSync() {
33
45
  return;
34
46
  if ((activeConnector === null || activeConnector === void 0 ? void 0 : activeConnector.id) === embeddedWalletId)
35
47
  return;
48
+ // An external wallet is actively connected — don't override it
49
+ if (externalConnectorActiveRef.current) {
50
+ logger.log('[EmbeddedWalletWagmiSync] Skipping auto-connect — external wallet is active', {
51
+ activeConnector: activeConnector === null || activeConnector === void 0 ? void 0 : activeConnector.id,
52
+ });
53
+ return;
54
+ }
36
55
  const embeddedConnector = connectors.find((c) => c.id === embeddedWalletId);
37
56
  if (!embeddedConnector)
38
57
  return;
58
+ logger.log('[EmbeddedWalletWagmiSync] Auto-connecting embedded wallet to wagmi');
39
59
  connectAsync({ connector: embeddedConnector }).catch(() => { });
40
60
  }, [status, provider, wagmiStatus, activeConnector, connectors, connectAsync]);
41
61
  // Disconnect embedded connector from wagmi when the embedded wallet logs out
@@ -1 +1 @@
1
- {"version":3,"file":"useEmbeddedWalletWagmiSync.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"useEmbeddedWalletWagmiSync.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -6,6 +6,7 @@ import { mapStatus } from '../hooks/openfort/auth/status.js';
6
6
  import { onError, onSuccess } from '../hooks/openfort/hookConsistency.js';
7
7
  import { useOpenfortCore } from '../openfort/useOpenfort.js';
8
8
  import { createSIWEMessage } from '../siwe/create-siwe-message.js';
9
+ import { logger } from '../utils/logger.js';
9
10
 
10
11
  function runConnectWithSiwe(bridge, openfort, params) {
11
12
  var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s;
@@ -19,10 +20,12 @@ function runConnectWithSiwe(bridge, openfort, params) {
19
20
  const switchChainAsync = (_q = bridge.switchChain) === null || _q === void 0 ? void 0 : _q.switchChainAsync;
20
21
  const signMessage = bridge.signMessage;
21
22
  if (!address || !connectorType || !walletClientType) {
23
+ logger.warn('[runConnectWithSiwe] Missing params', { address, connectorType, walletClientType });
22
24
  (_r = params.onError) === null || _r === void 0 ? void 0 : _r.call(params, 'No address found');
23
25
  return Promise.resolve();
24
26
  }
25
27
  if (!signMessage) {
28
+ logger.warn('[runConnectWithSiwe] No signMessage on bridge');
26
29
  (_s = params.onError) === null || _s === void 0 ? void 0 : _s.call(params, 'EVM bridge not available (signMessage)');
27
30
  return Promise.resolve();
28
31
  }
@@ -67,6 +70,7 @@ function runConnectWithSiwe(bridge, openfort, params) {
67
70
  (_a = params.onConnect) === null || _a === void 0 ? void 0 : _a.call(params);
68
71
  }
69
72
  catch (err) {
73
+ logger.error('[runConnectWithSiwe] SIWE failed', err instanceof Error ? err.message : err);
70
74
  if (!params.onError)
71
75
  return;
72
76
  let message = err instanceof Error ? err.message : String(err);
@@ -105,6 +109,7 @@ function useWalletAuth(hookOptions = {}) {
105
109
  const connector = (_a = bridge === null || bridge === void 0 ? void 0 : bridge.connectors) === null || _a === void 0 ? void 0 : _a.find((c) => c.id === connectorId);
106
110
  if (!connector || !(bridge === null || bridge === void 0 ? void 0 : bridge.connectAsync)) {
107
111
  const msg = 'Connector not available';
112
+ logger.warn('[useWalletAuth] Connector not found', { connectorId });
108
113
  const err = new OpenfortError(msg, OpenfortReactErrorType.AUTHENTICATION_ERROR);
109
114
  setStatus({ status: 'error', error: err });
110
115
  onError({ hookOptions, error: err });
@@ -118,6 +123,7 @@ function useWalletAuth(hookOptions = {}) {
118
123
  await bridge.disconnect();
119
124
  }
120
125
  catch (e) {
126
+ logger.error('[useWalletAuth] Failed to disconnect', e);
121
127
  setWalletConnectingTo(null);
122
128
  const err = new OpenfortError('Failed to disconnect', OpenfortReactErrorType.AUTHENTICATION_ERROR, {
123
129
  error: e,
@@ -157,6 +163,7 @@ function useWalletAuth(hookOptions = {}) {
157
163
  });
158
164
  }
159
165
  catch (err) {
166
+ logger.error('[useWalletAuth] connectAsync failed', err instanceof Error ? err.message : err);
160
167
  setWalletConnectingTo(null);
161
168
  const message = err instanceof Error ? err.message : 'Connection failed';
162
169
  const openfortErr = new OpenfortError(message, OpenfortReactErrorType.AUTHENTICATION_ERROR, { error: err });
@@ -1 +1 @@
1
- {"version":3,"file":"useWalletAuth.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"useWalletAuth.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@openfort/react",
3
- "version": "1.0.6",
3
+ "version": "1.0.8",
4
4
  "author": "Openfort (https://www.openfort.io)",
5
5
  "license": "BSD-2-Clause license",
6
6
  "description": "The easiest way to integrate Openfort to your project.",
@@ -94,11 +94,10 @@
94
94
  "@types/styled-components": "^5.1.25",
95
95
  "@wagmi/connectors": "^6.2.0",
96
96
  "@wagmi/core": "^2.22.1",
97
- "happy-dom": "^20.8.3",
97
+ "happy-dom": "^20.8.9",
98
98
  "jsdom": "^28.1.0",
99
99
  "rollup-plugin-peer-deps-external": "^2.2.4",
100
100
  "rollup-plugin-typescript2": "^0.36.0",
101
- "styled-components": "^5.3.5",
102
101
  "typescript": "^5.0.4",
103
102
  "typescript-plugin-styled-components": "^2.0.0",
104
103
  "vitest": "^2.0.0",