@reown/appkit-wagmi-react-native 0.0.0-chore-types-20250804204153 → 0.0.0-chore-added-import-20251002170458

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.
@@ -95,6 +95,10 @@ class WagmiAdapter extends _appkitCommonReactNative.EVMAdapter {
95
95
  return accountsForNamespace?.accounts;
96
96
  }
97
97
  async disconnect() {
98
+ if (this.unsubscribeWatchAccount) {
99
+ this.unsubscribeWatchAccount();
100
+ this.unsubscribeWatchAccount = undefined;
101
+ }
98
102
  if (this.wagmiConfigConnector) {
99
103
  await (0, _core.disconnect)(this.wagmiConfig, {
100
104
  connector: this.wagmiConfigConnector
@@ -112,6 +116,12 @@ class WagmiAdapter extends _appkitCommonReactNative.EVMAdapter {
112
116
  getSupportedNamespace() {
113
117
  return WagmiAdapter.supportedNamespace;
114
118
  }
119
+
120
+ // Override subscribeToEvents to prevent double subscription
121
+ // Wagmi handles provider events through its connector system and watchAccount
122
+ subscribeToEvents() {
123
+ // Do nothing - wagmi's watchAccount in setupWatchers handles all events
124
+ }
115
125
  init({
116
126
  connector: _connector
117
127
  }) {
@@ -144,12 +154,25 @@ class WagmiAdapter extends _appkitCommonReactNative.EVMAdapter {
144
154
  this.setupWatchers();
145
155
  }
146
156
  setupWatchers() {
147
- (0, _core.watchAccount)(this.wagmiConfig, {
157
+ // Clean up existing subscription if any
158
+ this.unsubscribeWatchAccount?.();
159
+ this.unsubscribeWatchAccount = (0, _core.watchAccount)(this.wagmiConfig, {
148
160
  onChange: (accountData, prevAccountData) => {
161
+ if (!this.connector) return;
162
+
163
+ // Handle disconnect
149
164
  if (accountData.status === 'disconnected' && prevAccountData.address) {
150
165
  this.onDisconnect();
166
+ return;
151
167
  }
152
- if (accountData?.chainId && accountData?.chainId !== prevAccountData?.chainId) {
168
+
169
+ // Handle account address changes
170
+ if (accountData?.addresses && accountData?.address && accountData.address !== prevAccountData?.address) {
171
+ this.onAccountsChanged([...accountData.addresses]);
172
+ }
173
+
174
+ // Handle chain changes
175
+ if (accountData?.chainId && accountData.chainId !== prevAccountData?.chainId) {
153
176
  this.onChainChanged(accountData.chainId?.toString());
154
177
  }
155
178
  }
@@ -1 +1 @@
1
- {"version":3,"names":["_appkitCommonReactNative","require","_core","_helpers","_viem","_UniversalConnector","WagmiAdapter","EVMAdapter","supportedNamespace","constructor","configParams","adapterType","wagmiChains","networks","wagmiConfig","createWagmiInternalConfig","initialConnectors","transportsArr","map","chain","id","getTransport","chainId","projectId","transports","Object","fromEntries","createConfig","chains","connectors","multiInjectedProviderDiscovery","switchNetwork","network","wagmiConfigConnector","Error","switchChainWagmi","connector","getBalance","params","address","tokens","balanceAddress","getAccounts","find","acc","includes","toString","Promise","resolve","amount","symbol","nativeCurrency","accountHex","split","token","caipNetworkId","balance","getBalanceWagmi","formattedBalance","formatUnits","value","decimals","undefined","emit","namespaces","getNamespaces","supportedNamespaceKey","getSupportedNamespace","accountsForNamespace","accounts","disconnect","disconnectWagmiCore","onDisconnect","evmAdapterInstance","init","_connector","connectorInstance","_internal","setup","UniversalConnector","setState","prev","emitter","on","type","connectWagmi","error","setupWatchers","watchAccount","onChange","accountData","prevAccountData","status","onChainChanged","exports"],"sourceRoot":"../../src","sources":["adapter.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_appkitCommonReactNative","require","_core","_helpers","_viem","_UniversalConnector","WagmiAdapter","EVMAdapter","supportedNamespace","constructor","configParams","adapterType","wagmiChains","networks","wagmiConfig","createWagmiInternalConfig","initialConnectors","transportsArr","map","chain","id","getTransport","chainId","projectId","transports","Object","fromEntries","createConfig","chains","connectors","multiInjectedProviderDiscovery","switchNetwork","network","wagmiConfigConnector","Error","switchChainWagmi","connector","getBalance","params","address","tokens","balanceAddress","getAccounts","find","acc","includes","toString","Promise","resolve","amount","symbol","nativeCurrency","accountHex","split","token","caipNetworkId","balance","getBalanceWagmi","formattedBalance","formatUnits","value","decimals","undefined","emit","namespaces","getNamespaces","supportedNamespaceKey","getSupportedNamespace","accountsForNamespace","accounts","disconnect","unsubscribeWatchAccount","disconnectWagmiCore","onDisconnect","evmAdapterInstance","subscribeToEvents","init","_connector","connectorInstance","_internal","setup","UniversalConnector","setState","prev","emitter","on","type","connectWagmi","error","setupWatchers","watchAccount","onChange","accountData","prevAccountData","status","addresses","onAccountsChanged","onChainChanged","exports"],"sourceRoot":"../../src","sources":["adapter.ts"],"mappings":"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","ignoreList":[]}
@@ -6,52 +6,50 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.UniversalConnector = UniversalConnector;
7
7
  var _viem = require("viem");
8
8
  var _wagmi = require("wagmi");
9
- var _helpers = require("../utils/helpers");
10
9
  function UniversalConnector(appKitProvidedConnector) {
11
10
  let provider;
12
- let accountsChangedHandler;
13
- let chainChangedHandler;
14
- let disconnectHandler;
11
+ let accountsChanged;
12
+ let chainChanged;
13
+ let sessionDelete;
14
+ let disconnect;
15
+ function cleanupEventListeners(_provider) {
16
+ if (accountsChanged) {
17
+ _provider?.off('accountsChanged', accountsChanged);
18
+ accountsChanged = undefined;
19
+ }
20
+ if (chainChanged) {
21
+ _provider?.off('chainChanged', chainChanged);
22
+ chainChanged = undefined;
23
+ }
24
+ if (disconnect) {
25
+ _provider?.off('disconnect', disconnect);
26
+ disconnect = undefined;
27
+ }
28
+ if (sessionDelete) {
29
+ _provider?.off('session_delete', sessionDelete);
30
+ sessionDelete = undefined;
31
+ }
32
+ }
15
33
  return (0, _wagmi.createConnector)(config => ({
16
34
  id: 'walletconnect',
17
35
  name: 'WalletConnect',
18
36
  type: 'walletconnect',
19
- ready: !!appKitProvidedConnector.getProvider(),
37
+ ready: !!appKitProvidedConnector.getProvider('eip155'),
20
38
  async setup() {
21
- provider = appKitProvidedConnector.getProvider();
22
- if (provider?.on) {
23
- accountsChangedHandler = accounts => {
24
- const hexAccounts = accounts.map(acc => (0, _viem.getAddress)(acc));
25
- config.emitter.emit('change', {
26
- accounts: hexAccounts
27
- });
28
- if (hexAccounts.length === 0) {
29
- config.emitter.emit('disconnect');
30
- }
31
- };
32
- chainChangedHandler = chainId => {
33
- const newChainId = typeof chainId === 'string' ? parseInt(chainId, 10) : chainId;
34
- config.emitter.emit('change', {
35
- chainId: newChainId
36
- });
37
- };
38
- disconnectHandler = error => {
39
- config.emitter.emit('disconnect');
40
- if (error) config.emitter.emit('error', {
41
- error
42
- });
43
- };
44
- if (accountsChangedHandler) provider.on('accountsChanged', accountsChangedHandler);
45
- if (chainChangedHandler) provider.on('chainChanged', chainChangedHandler);
46
- if (disconnectHandler) provider.on('disconnect', disconnectHandler);
47
- if (disconnectHandler) provider.on('session_delete', disconnectHandler);
39
+ const _provider = await this.getProvider().catch(() => null);
40
+ if (!_provider) {
41
+ return;
42
+ }
43
+ if (!sessionDelete) {
44
+ sessionDelete = this.onSessionDelete.bind(this);
45
+ _provider.on('session_delete', sessionDelete);
48
46
  }
49
47
  },
50
48
  async connect({
51
49
  chainId
52
50
  } = {}) {
53
51
  try {
54
- const _provider = await this.getProvider();
52
+ const _provider = appKitProvidedConnector.getProvider('eip155');
55
53
  if (!_provider) throw new _wagmi.ProviderNotFoundError();
56
54
 
57
55
  // AppKit connector is already connected or handles its own connection.
@@ -69,7 +67,22 @@ function UniversalConnector(appKitProvidedConnector) {
69
67
  });
70
68
  currentChainId = chainId;
71
69
  }
72
- this.ready = true;
70
+ if (!accountsChanged) {
71
+ accountsChanged = this.onAccountsChanged.bind(this);
72
+ _provider.on('accountsChanged', accountsChanged);
73
+ }
74
+ if (!chainChanged) {
75
+ chainChanged = this.onChainChanged.bind(this);
76
+ _provider.on('chainChanged', chainChanged);
77
+ }
78
+ if (!disconnect) {
79
+ disconnect = this.onDisconnect.bind(this);
80
+ _provider.on('disconnect', disconnect);
81
+ }
82
+ if (!sessionDelete) {
83
+ sessionDelete = this.onSessionDelete.bind(this);
84
+ _provider.on('session_delete', sessionDelete);
85
+ }
73
86
  return {
74
87
  accounts: accountAddresses,
75
88
  chainId: currentChainId
@@ -80,25 +93,23 @@ function UniversalConnector(appKitProvidedConnector) {
80
93
  }
81
94
  },
82
95
  async disconnect() {
83
- await appKitProvidedConnector.disconnect();
84
- config.emitter.emit('message', {
85
- type: 'externalDisconnect'
86
- });
87
- if (provider?.off && accountsChangedHandler && chainChangedHandler && disconnectHandler) {
88
- provider.off('accountsChanged', accountsChangedHandler);
89
- provider.off('chainChanged', chainChangedHandler);
90
- provider.off('disconnect', disconnectHandler);
91
- provider.off('session_delete', disconnectHandler);
92
- accountsChangedHandler = undefined;
93
- chainChangedHandler = undefined;
94
- disconnectHandler = undefined;
96
+ const _provider = await this.getProvider().catch(() => null);
97
+ try {
98
+ await appKitProvidedConnector.disconnect();
99
+ config.emitter.emit('message', {
100
+ type: 'externalDisconnect'
101
+ });
102
+ } catch (error) {
103
+ if (!/No matching key/i.test(error.message)) {
104
+ throw error;
105
+ }
106
+ } finally {
107
+ cleanupEventListeners(_provider);
95
108
  }
96
- this.ready = false;
97
109
  },
98
110
  async getAccounts() {
99
111
  const namespaces = appKitProvidedConnector.getNamespaces();
100
- // @ts-ignore
101
- const eip155Accounts = namespaces?.eip155?.accounts;
112
+ const eip155Accounts = namespaces?.['eip155']?.accounts;
102
113
  if (!eip155Accounts) return [];
103
114
  return eip155Accounts.map(caipAddr => {
104
115
  const parts = caipAddr.split(':');
@@ -111,8 +122,7 @@ function UniversalConnector(appKitProvidedConnector) {
111
122
 
112
123
  // Fallback: Try to get from CAIP accounts if available
113
124
  const namespaces = appKitProvidedConnector.getNamespaces();
114
- // @ts-ignore
115
- const eip155Accounts = namespaces?.eip155?.accounts;
125
+ const eip155Accounts = namespaces?.['eip155']?.accounts;
116
126
  if (eip155Accounts && eip155Accounts.length > 0) {
117
127
  const parts = eip155Accounts[0]?.split(':');
118
128
  if (parts && parts.length > 1 && typeof parts[1] === 'string') {
@@ -127,7 +137,7 @@ function UniversalConnector(appKitProvidedConnector) {
127
137
  },
128
138
  async getProvider() {
129
139
  if (!provider) {
130
- provider = appKitProvidedConnector.getProvider();
140
+ provider = appKitProvidedConnector.getProvider('eip155');
131
141
  }
132
142
  return provider;
133
143
  },
@@ -142,7 +152,7 @@ function UniversalConnector(appKitProvidedConnector) {
142
152
  async switchChain({
143
153
  chainId
144
154
  }) {
145
- const _provider = await this.getProvider();
155
+ const _provider = appKitProvidedConnector.getProvider('eip155');
146
156
  if (!_provider) throw new Error('Provider not available for switching chain.');
147
157
  const newChain = config.chains.find(c => c.id === chainId);
148
158
  if (!newChain) throw new _viem.SwitchChainError(new _wagmi.ChainNotConfiguredError());
@@ -153,29 +163,23 @@ function UniversalConnector(appKitProvidedConnector) {
153
163
  chainId: (0, _viem.numberToHex)(chainId)
154
164
  }]
155
165
  });
156
- config.emitter.emit('change', {
157
- chainId
158
- });
159
166
  return newChain;
160
- } catch (error) {
161
- // Try to add chain if switch failed (common pattern)
162
- //4902 in MetaMask: Unrecognized chain ID
167
+ } catch (err) {
168
+ const error = err;
169
+ if (/(user rejected)/i.test(error.message)) throw new _viem.UserRejectedRequestError(error);
163
170
  if (error?.code === 4902 || error?.data?.originalError?.code === 4902) {
171
+ // Indicates chain is not added to provider
164
172
  try {
173
+ const addEthereumChainParams = {
174
+ chainId: (0, _viem.numberToHex)(chainId),
175
+ chainName: newChain.name,
176
+ nativeCurrency: newChain.nativeCurrency,
177
+ rpcUrls: [newChain.rpcUrls.default?.http[0] ?? ''],
178
+ blockExplorerUrls: [newChain.blockExplorers?.default?.url]
179
+ };
165
180
  await _provider.request({
166
181
  method: 'wallet_addEthereumChain',
167
- params: [{
168
- chainId: (0, _viem.numberToHex)(chainId),
169
- chainName: newChain.name,
170
- nativeCurrency: newChain.nativeCurrency,
171
- rpcUrls: [newChain.rpcUrls.default?.http[0] ?? ''],
172
- // Take first default HTTP RPC URL
173
- blockExplorerUrls: [newChain.blockExplorers?.default?.url]
174
- }]
175
- });
176
- await appKitProvidedConnector.switchNetwork((0, _helpers.formatNetwork)(newChain));
177
- config.emitter.emit('change', {
178
- chainId
182
+ params: [addEthereumChainParams]
179
183
  });
180
184
  return newChain;
181
185
  } catch (addError) {
@@ -186,18 +190,40 @@ function UniversalConnector(appKitProvidedConnector) {
186
190
  }
187
191
  },
188
192
  onAccountsChanged(accounts) {
189
- if (accounts.length === 0) this.onDisconnect();else config.emitter.emit('change', {
190
- accounts: accounts.map(x => (0, _viem.getAddress)(x))
191
- });
193
+ //Only emit if the account is an evm account
194
+ const shouldEmit = accounts.some(account => account.startsWith('0x'));
195
+ if (accounts.length === 0) {
196
+ this.onDisconnect();
197
+ } else if (shouldEmit) {
198
+ config.emitter.emit('change', {
199
+ accounts: accounts.map(x => (0, _viem.getAddress)(x))
200
+ });
201
+ }
192
202
  },
193
203
  onChainChanged(chain) {
194
204
  const chainId = Number(chain);
195
- config.emitter.emit('change', {
196
- chainId
197
- });
205
+
206
+ //Only emit if the chain is in the config (evm)
207
+ const shouldEmit = config.chains.some(c => c.id === chainId);
208
+ if (shouldEmit) {
209
+ config.emitter.emit('change', {
210
+ chainId
211
+ });
212
+ }
198
213
  },
199
- onDisconnect: () => {
214
+ async onDisconnect() {
200
215
  config.emitter.emit('disconnect');
216
+ try {
217
+ const _provider = await this.getProvider();
218
+ cleanupEventListeners(_provider);
219
+ } catch (error) {
220
+ // If provider is not available, still clean up local references
221
+ // to prevent memory leaks
222
+ cleanupEventListeners(null);
223
+ }
224
+ },
225
+ onSessionDelete() {
226
+ this.onDisconnect();
201
227
  }
202
228
  }));
203
229
  }
@@ -1 +1 @@
1
- {"version":3,"names":["_viem","require","_wagmi","_helpers","UniversalConnector","appKitProvidedConnector","provider","accountsChangedHandler","chainChangedHandler","disconnectHandler","createConnector","config","id","name","type","ready","getProvider","setup","on","accounts","hexAccounts","map","acc","getAddress","emitter","emit","length","chainId","newChainId","parseInt","error","connect","_provider","ProviderNotFoundError","accountAddresses","getAccounts","UserRejectedRequestError","Error","currentChainId","getChainId","switchChain","disconnect","off","undefined","namespaces","getNamespaces","eip155Accounts","eip155","caipAddr","parts","split","filter","addrPart","chainIdNum","isNaN","chains","isAuthorized","newChain","find","c","SwitchChainError","ChainNotConfiguredError","request","method","params","numberToHex","code","data","originalError","chainName","nativeCurrency","rpcUrls","default","http","blockExplorerUrls","blockExplorers","url","switchNetwork","formatNetwork","addError","onAccountsChanged","onDisconnect","x","onChainChanged","chain","Number"],"sourceRoot":"../../../src","sources":["connectors/UniversalConnector.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_viem","require","_wagmi","UniversalConnector","appKitProvidedConnector","provider","accountsChanged","chainChanged","sessionDelete","disconnect","cleanupEventListeners","_provider","off","undefined","createConnector","config","id","name","type","ready","getProvider","setup","catch","onSessionDelete","bind","on","connect","chainId","ProviderNotFoundError","accountAddresses","getAccounts","length","UserRejectedRequestError","Error","currentChainId","getChainId","switchChain","onAccountsChanged","onChainChanged","onDisconnect","accounts","error","emitter","emit","test","message","namespaces","getNamespaces","eip155Accounts","map","caipAddr","parts","split","filter","addrPart","getAddress","parseInt","chainIdNum","isNaN","chains","isAuthorized","newChain","find","c","SwitchChainError","ChainNotConfiguredError","request","method","params","numberToHex","err","code","data","originalError","addEthereumChainParams","chainName","nativeCurrency","rpcUrls","default","http","blockExplorerUrls","blockExplorers","url","addError","shouldEmit","some","account","startsWith","x","chain","Number"],"sourceRoot":"../../../src","sources":["connectors/UniversalConnector.ts"],"mappings":"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","ignoreList":[]}
@@ -91,6 +91,10 @@ export class WagmiAdapter extends EVMAdapter {
91
91
  return accountsForNamespace?.accounts;
92
92
  }
93
93
  async disconnect() {
94
+ if (this.unsubscribeWatchAccount) {
95
+ this.unsubscribeWatchAccount();
96
+ this.unsubscribeWatchAccount = undefined;
97
+ }
94
98
  if (this.wagmiConfigConnector) {
95
99
  await disconnectWagmiCore(this.wagmiConfig, {
96
100
  connector: this.wagmiConfigConnector
@@ -108,6 +112,12 @@ export class WagmiAdapter extends EVMAdapter {
108
112
  getSupportedNamespace() {
109
113
  return WagmiAdapter.supportedNamespace;
110
114
  }
115
+
116
+ // Override subscribeToEvents to prevent double subscription
117
+ // Wagmi handles provider events through its connector system and watchAccount
118
+ subscribeToEvents() {
119
+ // Do nothing - wagmi's watchAccount in setupWatchers handles all events
120
+ }
111
121
  init({
112
122
  connector: _connector
113
123
  }) {
@@ -140,12 +150,25 @@ export class WagmiAdapter extends EVMAdapter {
140
150
  this.setupWatchers();
141
151
  }
142
152
  setupWatchers() {
143
- watchAccount(this.wagmiConfig, {
153
+ // Clean up existing subscription if any
154
+ this.unsubscribeWatchAccount?.();
155
+ this.unsubscribeWatchAccount = watchAccount(this.wagmiConfig, {
144
156
  onChange: (accountData, prevAccountData) => {
157
+ if (!this.connector) return;
158
+
159
+ // Handle disconnect
145
160
  if (accountData.status === 'disconnected' && prevAccountData.address) {
146
161
  this.onDisconnect();
162
+ return;
147
163
  }
148
- if (accountData?.chainId && accountData?.chainId !== prevAccountData?.chainId) {
164
+
165
+ // Handle account address changes
166
+ if (accountData?.addresses && accountData?.address && accountData.address !== prevAccountData?.address) {
167
+ this.onAccountsChanged([...accountData.addresses]);
168
+ }
169
+
170
+ // Handle chain changes
171
+ if (accountData?.chainId && accountData.chainId !== prevAccountData?.chainId) {
149
172
  this.onChainChanged(accountData.chainId?.toString());
150
173
  }
151
174
  }
@@ -1 +1 @@
1
- {"version":3,"names":["EVMAdapter","createConfig","getBalance","getBalanceWagmi","switchChain","switchChainWagmi","disconnect","disconnectWagmiCore","connect","connectWagmi","watchAccount","getTransport","formatUnits","UniversalConnector","WagmiAdapter","supportedNamespace","constructor","configParams","adapterType","wagmiChains","networks","wagmiConfig","createWagmiInternalConfig","initialConnectors","transportsArr","map","chain","id","chainId","projectId","transports","Object","fromEntries","chains","connectors","multiInjectedProviderDiscovery","switchNetwork","network","wagmiConfigConnector","Error","connector","params","address","tokens","balanceAddress","getAccounts","find","acc","includes","toString","Promise","resolve","amount","symbol","nativeCurrency","accountHex","split","token","caipNetworkId","balance","formattedBalance","value","decimals","undefined","emit","namespaces","getNamespaces","supportedNamespaceKey","getSupportedNamespace","accountsForNamespace","accounts","onDisconnect","evmAdapterInstance","init","_connector","connectorInstance","_internal","setup","setState","prev","emitter","on","type","error","setupWatchers","onChange","accountData","prevAccountData","status","onChainChanged"],"sourceRoot":"../../src","sources":["adapter.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["EVMAdapter","createConfig","getBalance","getBalanceWagmi","switchChain","switchChainWagmi","disconnect","disconnectWagmiCore","connect","connectWagmi","watchAccount","getTransport","formatUnits","UniversalConnector","WagmiAdapter","supportedNamespace","constructor","configParams","adapterType","wagmiChains","networks","wagmiConfig","createWagmiInternalConfig","initialConnectors","transportsArr","map","chain","id","chainId","projectId","transports","Object","fromEntries","chains","connectors","multiInjectedProviderDiscovery","switchNetwork","network","wagmiConfigConnector","Error","connector","params","address","tokens","balanceAddress","getAccounts","find","acc","includes","toString","Promise","resolve","amount","symbol","nativeCurrency","accountHex","split","token","caipNetworkId","balance","formattedBalance","value","decimals","undefined","emit","namespaces","getNamespaces","supportedNamespaceKey","getSupportedNamespace","accountsForNamespace","accounts","unsubscribeWatchAccount","onDisconnect","evmAdapterInstance","subscribeToEvents","init","_connector","connectorInstance","_internal","setup","setState","prev","emitter","on","type","error","setupWatchers","onChange","accountData","prevAccountData","status","addresses","onAccountsChanged","onChainChanged"],"sourceRoot":"../../src","sources":["adapter.ts"],"mappings":"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","ignoreList":[]}
@@ -2,52 +2,50 @@
2
2
 
3
3
  import { getAddress, numberToHex, SwitchChainError, UserRejectedRequestError } from 'viem';
4
4
  import { ChainNotConfiguredError, createConnector, ProviderNotFoundError } from 'wagmi';
5
- import { formatNetwork } from '../utils/helpers';
6
5
  export function UniversalConnector(appKitProvidedConnector) {
7
6
  let provider;
8
- let accountsChangedHandler;
9
- let chainChangedHandler;
10
- let disconnectHandler;
7
+ let accountsChanged;
8
+ let chainChanged;
9
+ let sessionDelete;
10
+ let disconnect;
11
+ function cleanupEventListeners(_provider) {
12
+ if (accountsChanged) {
13
+ _provider?.off('accountsChanged', accountsChanged);
14
+ accountsChanged = undefined;
15
+ }
16
+ if (chainChanged) {
17
+ _provider?.off('chainChanged', chainChanged);
18
+ chainChanged = undefined;
19
+ }
20
+ if (disconnect) {
21
+ _provider?.off('disconnect', disconnect);
22
+ disconnect = undefined;
23
+ }
24
+ if (sessionDelete) {
25
+ _provider?.off('session_delete', sessionDelete);
26
+ sessionDelete = undefined;
27
+ }
28
+ }
11
29
  return createConnector(config => ({
12
30
  id: 'walletconnect',
13
31
  name: 'WalletConnect',
14
32
  type: 'walletconnect',
15
- ready: !!appKitProvidedConnector.getProvider(),
33
+ ready: !!appKitProvidedConnector.getProvider('eip155'),
16
34
  async setup() {
17
- provider = appKitProvidedConnector.getProvider();
18
- if (provider?.on) {
19
- accountsChangedHandler = accounts => {
20
- const hexAccounts = accounts.map(acc => getAddress(acc));
21
- config.emitter.emit('change', {
22
- accounts: hexAccounts
23
- });
24
- if (hexAccounts.length === 0) {
25
- config.emitter.emit('disconnect');
26
- }
27
- };
28
- chainChangedHandler = chainId => {
29
- const newChainId = typeof chainId === 'string' ? parseInt(chainId, 10) : chainId;
30
- config.emitter.emit('change', {
31
- chainId: newChainId
32
- });
33
- };
34
- disconnectHandler = error => {
35
- config.emitter.emit('disconnect');
36
- if (error) config.emitter.emit('error', {
37
- error
38
- });
39
- };
40
- if (accountsChangedHandler) provider.on('accountsChanged', accountsChangedHandler);
41
- if (chainChangedHandler) provider.on('chainChanged', chainChangedHandler);
42
- if (disconnectHandler) provider.on('disconnect', disconnectHandler);
43
- if (disconnectHandler) provider.on('session_delete', disconnectHandler);
35
+ const _provider = await this.getProvider().catch(() => null);
36
+ if (!_provider) {
37
+ return;
38
+ }
39
+ if (!sessionDelete) {
40
+ sessionDelete = this.onSessionDelete.bind(this);
41
+ _provider.on('session_delete', sessionDelete);
44
42
  }
45
43
  },
46
44
  async connect({
47
45
  chainId
48
46
  } = {}) {
49
47
  try {
50
- const _provider = await this.getProvider();
48
+ const _provider = appKitProvidedConnector.getProvider('eip155');
51
49
  if (!_provider) throw new ProviderNotFoundError();
52
50
 
53
51
  // AppKit connector is already connected or handles its own connection.
@@ -65,7 +63,22 @@ export function UniversalConnector(appKitProvidedConnector) {
65
63
  });
66
64
  currentChainId = chainId;
67
65
  }
68
- this.ready = true;
66
+ if (!accountsChanged) {
67
+ accountsChanged = this.onAccountsChanged.bind(this);
68
+ _provider.on('accountsChanged', accountsChanged);
69
+ }
70
+ if (!chainChanged) {
71
+ chainChanged = this.onChainChanged.bind(this);
72
+ _provider.on('chainChanged', chainChanged);
73
+ }
74
+ if (!disconnect) {
75
+ disconnect = this.onDisconnect.bind(this);
76
+ _provider.on('disconnect', disconnect);
77
+ }
78
+ if (!sessionDelete) {
79
+ sessionDelete = this.onSessionDelete.bind(this);
80
+ _provider.on('session_delete', sessionDelete);
81
+ }
69
82
  return {
70
83
  accounts: accountAddresses,
71
84
  chainId: currentChainId
@@ -76,25 +89,23 @@ export function UniversalConnector(appKitProvidedConnector) {
76
89
  }
77
90
  },
78
91
  async disconnect() {
79
- await appKitProvidedConnector.disconnect();
80
- config.emitter.emit('message', {
81
- type: 'externalDisconnect'
82
- });
83
- if (provider?.off && accountsChangedHandler && chainChangedHandler && disconnectHandler) {
84
- provider.off('accountsChanged', accountsChangedHandler);
85
- provider.off('chainChanged', chainChangedHandler);
86
- provider.off('disconnect', disconnectHandler);
87
- provider.off('session_delete', disconnectHandler);
88
- accountsChangedHandler = undefined;
89
- chainChangedHandler = undefined;
90
- disconnectHandler = undefined;
92
+ const _provider = await this.getProvider().catch(() => null);
93
+ try {
94
+ await appKitProvidedConnector.disconnect();
95
+ config.emitter.emit('message', {
96
+ type: 'externalDisconnect'
97
+ });
98
+ } catch (error) {
99
+ if (!/No matching key/i.test(error.message)) {
100
+ throw error;
101
+ }
102
+ } finally {
103
+ cleanupEventListeners(_provider);
91
104
  }
92
- this.ready = false;
93
105
  },
94
106
  async getAccounts() {
95
107
  const namespaces = appKitProvidedConnector.getNamespaces();
96
- // @ts-ignore
97
- const eip155Accounts = namespaces?.eip155?.accounts;
108
+ const eip155Accounts = namespaces?.['eip155']?.accounts;
98
109
  if (!eip155Accounts) return [];
99
110
  return eip155Accounts.map(caipAddr => {
100
111
  const parts = caipAddr.split(':');
@@ -107,8 +118,7 @@ export function UniversalConnector(appKitProvidedConnector) {
107
118
 
108
119
  // Fallback: Try to get from CAIP accounts if available
109
120
  const namespaces = appKitProvidedConnector.getNamespaces();
110
- // @ts-ignore
111
- const eip155Accounts = namespaces?.eip155?.accounts;
121
+ const eip155Accounts = namespaces?.['eip155']?.accounts;
112
122
  if (eip155Accounts && eip155Accounts.length > 0) {
113
123
  const parts = eip155Accounts[0]?.split(':');
114
124
  if (parts && parts.length > 1 && typeof parts[1] === 'string') {
@@ -123,7 +133,7 @@ export function UniversalConnector(appKitProvidedConnector) {
123
133
  },
124
134
  async getProvider() {
125
135
  if (!provider) {
126
- provider = appKitProvidedConnector.getProvider();
136
+ provider = appKitProvidedConnector.getProvider('eip155');
127
137
  }
128
138
  return provider;
129
139
  },
@@ -138,7 +148,7 @@ export function UniversalConnector(appKitProvidedConnector) {
138
148
  async switchChain({
139
149
  chainId
140
150
  }) {
141
- const _provider = await this.getProvider();
151
+ const _provider = appKitProvidedConnector.getProvider('eip155');
142
152
  if (!_provider) throw new Error('Provider not available for switching chain.');
143
153
  const newChain = config.chains.find(c => c.id === chainId);
144
154
  if (!newChain) throw new SwitchChainError(new ChainNotConfiguredError());
@@ -149,29 +159,23 @@ export function UniversalConnector(appKitProvidedConnector) {
149
159
  chainId: numberToHex(chainId)
150
160
  }]
151
161
  });
152
- config.emitter.emit('change', {
153
- chainId
154
- });
155
162
  return newChain;
156
- } catch (error) {
157
- // Try to add chain if switch failed (common pattern)
158
- //4902 in MetaMask: Unrecognized chain ID
163
+ } catch (err) {
164
+ const error = err;
165
+ if (/(user rejected)/i.test(error.message)) throw new UserRejectedRequestError(error);
159
166
  if (error?.code === 4902 || error?.data?.originalError?.code === 4902) {
167
+ // Indicates chain is not added to provider
160
168
  try {
169
+ const addEthereumChainParams = {
170
+ chainId: numberToHex(chainId),
171
+ chainName: newChain.name,
172
+ nativeCurrency: newChain.nativeCurrency,
173
+ rpcUrls: [newChain.rpcUrls.default?.http[0] ?? ''],
174
+ blockExplorerUrls: [newChain.blockExplorers?.default?.url]
175
+ };
161
176
  await _provider.request({
162
177
  method: 'wallet_addEthereumChain',
163
- params: [{
164
- chainId: numberToHex(chainId),
165
- chainName: newChain.name,
166
- nativeCurrency: newChain.nativeCurrency,
167
- rpcUrls: [newChain.rpcUrls.default?.http[0] ?? ''],
168
- // Take first default HTTP RPC URL
169
- blockExplorerUrls: [newChain.blockExplorers?.default?.url]
170
- }]
171
- });
172
- await appKitProvidedConnector.switchNetwork(formatNetwork(newChain));
173
- config.emitter.emit('change', {
174
- chainId
178
+ params: [addEthereumChainParams]
175
179
  });
176
180
  return newChain;
177
181
  } catch (addError) {
@@ -182,18 +186,40 @@ export function UniversalConnector(appKitProvidedConnector) {
182
186
  }
183
187
  },
184
188
  onAccountsChanged(accounts) {
185
- if (accounts.length === 0) this.onDisconnect();else config.emitter.emit('change', {
186
- accounts: accounts.map(x => getAddress(x))
187
- });
189
+ //Only emit if the account is an evm account
190
+ const shouldEmit = accounts.some(account => account.startsWith('0x'));
191
+ if (accounts.length === 0) {
192
+ this.onDisconnect();
193
+ } else if (shouldEmit) {
194
+ config.emitter.emit('change', {
195
+ accounts: accounts.map(x => getAddress(x))
196
+ });
197
+ }
188
198
  },
189
199
  onChainChanged(chain) {
190
200
  const chainId = Number(chain);
191
- config.emitter.emit('change', {
192
- chainId
193
- });
201
+
202
+ //Only emit if the chain is in the config (evm)
203
+ const shouldEmit = config.chains.some(c => c.id === chainId);
204
+ if (shouldEmit) {
205
+ config.emitter.emit('change', {
206
+ chainId
207
+ });
208
+ }
194
209
  },
195
- onDisconnect: () => {
210
+ async onDisconnect() {
196
211
  config.emitter.emit('disconnect');
212
+ try {
213
+ const _provider = await this.getProvider();
214
+ cleanupEventListeners(_provider);
215
+ } catch (error) {
216
+ // If provider is not available, still clean up local references
217
+ // to prevent memory leaks
218
+ cleanupEventListeners(null);
219
+ }
220
+ },
221
+ onSessionDelete() {
222
+ this.onDisconnect();
197
223
  }
198
224
  }));
199
225
  }
@@ -1 +1 @@
1
- {"version":3,"names":["getAddress","numberToHex","SwitchChainError","UserRejectedRequestError","ChainNotConfiguredError","createConnector","ProviderNotFoundError","formatNetwork","UniversalConnector","appKitProvidedConnector","provider","accountsChangedHandler","chainChangedHandler","disconnectHandler","config","id","name","type","ready","getProvider","setup","on","accounts","hexAccounts","map","acc","emitter","emit","length","chainId","newChainId","parseInt","error","connect","_provider","accountAddresses","getAccounts","Error","currentChainId","getChainId","switchChain","disconnect","off","undefined","namespaces","getNamespaces","eip155Accounts","eip155","caipAddr","parts","split","filter","addrPart","chainIdNum","isNaN","chains","isAuthorized","newChain","find","c","request","method","params","code","data","originalError","chainName","nativeCurrency","rpcUrls","default","http","blockExplorerUrls","blockExplorers","url","switchNetwork","addError","onAccountsChanged","onDisconnect","x","onChainChanged","chain","Number"],"sourceRoot":"../../../src","sources":["connectors/UniversalConnector.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["getAddress","numberToHex","SwitchChainError","UserRejectedRequestError","ChainNotConfiguredError","createConnector","ProviderNotFoundError","UniversalConnector","appKitProvidedConnector","provider","accountsChanged","chainChanged","sessionDelete","disconnect","cleanupEventListeners","_provider","off","undefined","config","id","name","type","ready","getProvider","setup","catch","onSessionDelete","bind","on","connect","chainId","accountAddresses","getAccounts","length","Error","currentChainId","getChainId","switchChain","onAccountsChanged","onChainChanged","onDisconnect","accounts","error","emitter","emit","test","message","namespaces","getNamespaces","eip155Accounts","map","caipAddr","parts","split","filter","addrPart","parseInt","chainIdNum","isNaN","chains","isAuthorized","newChain","find","c","request","method","params","err","code","data","originalError","addEthereumChainParams","chainName","nativeCurrency","rpcUrls","default","http","blockExplorerUrls","blockExplorers","url","addError","shouldEmit","some","account","startsWith","x","chain","Number"],"sourceRoot":"../../../src","sources":["connectors/UniversalConnector.ts"],"mappings":"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","ignoreList":[]}
@@ -11,6 +11,7 @@ export declare class WagmiAdapter extends EVMAdapter {
11
11
  wagmiChains: readonly Chain[] | undefined;
12
12
  wagmiConfig: Config;
13
13
  private wagmiConfigConnector?;
14
+ private unsubscribeWatchAccount?;
14
15
  constructor(configParams: ConfigParams);
15
16
  private createWagmiInternalConfig;
16
17
  switchNetwork(network: AppKitNetwork): Promise<void>;
@@ -18,6 +19,7 @@ export declare class WagmiAdapter extends EVMAdapter {
18
19
  getAccounts(): CaipAddress[] | undefined;
19
20
  disconnect(): Promise<void>;
20
21
  getSupportedNamespace(): ChainNamespace;
22
+ subscribeToEvents(): void;
21
23
  init({ connector: _connector }: BlockchainAdapterInitParams): void;
22
24
  setupWatchers(): void;
23
25
  }
@@ -1 +1 @@
1
- {"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../src/adapter.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EACV,KAAK,aAAa,EAClB,KAAK,2BAA2B,EAChC,KAAK,WAAW,EAChB,KAAK,cAAc,EACnB,KAAK,gBAAgB,EACrB,KAAK,kBAAkB,EACxB,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EACL,KAAK,MAAM,EACX,KAAK,sBAAsB,EAM3B,KAAK,SAAS,EAEf,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AAK1C,KAAK,YAAY,GAAG,OAAO,CAAC,sBAAsB,CAAC,GAAG;IACpD,QAAQ,EAAE,SAAS,CAAC,KAAK,EAAE,GAAG,KAAK,EAAE,CAAC,CAAC;IACvC,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,SAAS,EAAE,CAAC;CAC1B,CAAC;AAEF,qBAAa,YAAa,SAAQ,UAAU;IAC1C,OAAO,CAAC,MAAM,CAAC,kBAAkB,CAA4B;IACtD,WAAW,EAAE,SAAS,KAAK,EAAE,GAAG,SAAS,CAAC;IAC1C,WAAW,EAAG,MAAM,CAAC;IAC5B,OAAO,CAAC,oBAAoB,CAAC,CAAY;gBAE7B,YAAY,EAAE,YAAY;IAStC,OAAO,CAAC,yBAAyB;IAoB3B,aAAa,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAWpD,UAAU,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAuCvE,WAAW,IAAI,WAAW,EAAE,GAAG,SAAS;IAgBlC,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAejC,qBAAqB,IAAI,cAAc;IAI9B,IAAI,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,EAAE,2BAA2B,GAAG,IAAI;IAgC3E,aAAa;CAad"}
1
+ {"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../src/adapter.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EACV,KAAK,aAAa,EAClB,KAAK,2BAA2B,EAChC,KAAK,WAAW,EAChB,KAAK,cAAc,EACnB,KAAK,gBAAgB,EACrB,KAAK,kBAAkB,EACxB,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EACL,KAAK,MAAM,EACX,KAAK,sBAAsB,EAM3B,KAAK,SAAS,EAEf,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AAK1C,KAAK,YAAY,GAAG,OAAO,CAAC,sBAAsB,CAAC,GAAG;IACpD,QAAQ,EAAE,SAAS,CAAC,KAAK,EAAE,GAAG,KAAK,EAAE,CAAC,CAAC;IACvC,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,SAAS,EAAE,CAAC;CAC1B,CAAC;AAEF,qBAAa,YAAa,SAAQ,UAAU;IAC1C,OAAO,CAAC,MAAM,CAAC,kBAAkB,CAA4B;IACtD,WAAW,EAAE,SAAS,KAAK,EAAE,GAAG,SAAS,CAAC;IAC1C,WAAW,EAAG,MAAM,CAAC;IAC5B,OAAO,CAAC,oBAAoB,CAAC,CAAY;IACzC,OAAO,CAAC,uBAAuB,CAAC,CAAa;gBAEjC,YAAY,EAAE,YAAY;IAStC,OAAO,CAAC,yBAAyB;IAoB3B,aAAa,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAWpD,UAAU,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAuCvE,WAAW,IAAI,WAAW,EAAE,GAAG,SAAS;IAgBlC,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAoBjC,qBAAqB,IAAI,cAAc;IAM9B,iBAAiB,IAAI,IAAI;IAIzB,IAAI,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,EAAE,2BAA2B,GAAG,IAAI;IAgC3E,aAAa;CA+Bd"}
@@ -1,5 +1,9 @@
1
1
  import type { Provider, WalletConnector } from '@reown/appkit-common-react-native';
2
- export declare function UniversalConnector(appKitProvidedConnector: WalletConnector): import("wagmi").CreateConnectorFn<Provider, {
3
- ready: boolean;
4
- }, Record<string, unknown>>;
2
+ type Properties = {
3
+ onSessionDelete(data: {
4
+ topic: string;
5
+ }): void;
6
+ };
7
+ export declare function UniversalConnector(appKitProvidedConnector: WalletConnector): import("wagmi").CreateConnectorFn<Provider, Properties, Record<string, unknown>>;
8
+ export {};
5
9
  //# sourceMappingURL=UniversalConnector.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"UniversalConnector.d.ts","sourceRoot":"","sources":["../../../src/connectors/UniversalConnector.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AAWnF,wBAAgB,kBAAkB,CAAC,uBAAuB,EAAE,eAAe;WAO/B,OAAO;4BAmMlD"}
1
+ {"version":3,"file":"UniversalConnector.d.ts","sourceRoot":"","sources":["../../../src/connectors/UniversalConnector.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AAqBnF,KAAK,UAAU,GAAG;IAChB,eAAe,CAAC,IAAI,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;CAChD,CAAC;AAEF,wBAAgB,kBAAkB,CAAC,uBAAuB,EAAE,eAAe,oFA+O1E"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@reown/appkit-wagmi-react-native",
3
- "version": "0.0.0-chore-types-20250804204153",
3
+ "version": "0.0.0-chore-added-import-20251002170458",
4
4
  "main": "lib/commonjs/index.js",
5
5
  "types": "lib/typescript/index.d.ts",
6
6
  "module": "lib/module/index.js",
@@ -31,18 +31,18 @@
31
31
  "repository": "https://github.com/reown-com/appkit-react-native",
32
32
  "author": "Reown (https://discord.gg/reown)",
33
33
  "homepage": "https://reown.com/appkit",
34
- "license": "Apache-2.0",
34
+ "license": "SEE LICENSE IN LICENSE.md",
35
35
  "bugs": {
36
36
  "url": "https://github.com/reown-com/appkit-react-native/issues"
37
37
  },
38
38
  "publishConfig": {
39
39
  "registry": "https://registry.npmjs.org/",
40
- "access": "public"
40
+ "access": "public",
41
+ "provenance": true
41
42
  },
42
43
  "dependencies": {
43
- "@reown/appkit-common-react-native": "0.0.0-chore-types-20250804204153",
44
- "@reown/appkit-react-native": "0.0.0-chore-types-20250804204153",
45
- "@reown/appkit-siwe-react-native": "0.0.0-chore-types-20250804204153"
44
+ "@reown/appkit-common-react-native": "0.0.0-chore-added-import-20251002170458",
45
+ "@reown/appkit-react-native": "0.0.0-chore-added-import-20251002170458"
46
46
  },
47
47
  "peerDependencies": {
48
48
  "@react-native-community/netinfo": "*",
@@ -50,8 +50,8 @@
50
50
  "react": ">=18",
51
51
  "react-native": ">=0.72",
52
52
  "react-native-get-random-values": "*",
53
- "viem": ">=2.21.4",
54
- "wagmi": ">=2.12.10"
53
+ "viem": ">=2 <3.0.0",
54
+ "wagmi": ">=2 <3.0.0"
55
55
  },
56
56
  "eslintIgnore": [
57
57
  "node_modules/",
package/src/adapter.ts CHANGED
@@ -34,6 +34,7 @@ export class WagmiAdapter extends EVMAdapter {
34
34
  public wagmiChains: readonly Chain[] | undefined;
35
35
  public wagmiConfig!: Config;
36
36
  private wagmiConfigConnector?: Connector;
37
+ private unsubscribeWatchAccount?: () => void;
37
38
 
38
39
  constructor(configParams: ConfigParams) {
39
40
  super({
@@ -131,6 +132,11 @@ export class WagmiAdapter extends EVMAdapter {
131
132
  }
132
133
 
133
134
  async disconnect(): Promise<void> {
135
+ if (this.unsubscribeWatchAccount) {
136
+ this.unsubscribeWatchAccount();
137
+ this.unsubscribeWatchAccount = undefined;
138
+ }
139
+
134
140
  if (this.wagmiConfigConnector) {
135
141
  await disconnectWagmiCore(this.wagmiConfig, { connector: this.wagmiConfigConnector });
136
142
  this.wagmiConfigConnector = undefined;
@@ -149,6 +155,12 @@ export class WagmiAdapter extends EVMAdapter {
149
155
  return WagmiAdapter.supportedNamespace;
150
156
  }
151
157
 
158
+ // Override subscribeToEvents to prevent double subscription
159
+ // Wagmi handles provider events through its connector system and watchAccount
160
+ override subscribeToEvents(): void {
161
+ // Do nothing - wagmi's watchAccount in setupWatchers handles all events
162
+ }
163
+
152
164
  override init({ connector: _connector }: BlockchainAdapterInitParams): void {
153
165
  super.init({ connector: _connector });
154
166
 
@@ -182,13 +194,31 @@ export class WagmiAdapter extends EVMAdapter {
182
194
  }
183
195
 
184
196
  setupWatchers() {
185
- watchAccount(this.wagmiConfig, {
197
+ // Clean up existing subscription if any
198
+ this.unsubscribeWatchAccount?.();
199
+
200
+ this.unsubscribeWatchAccount = watchAccount(this.wagmiConfig, {
186
201
  onChange: (accountData, prevAccountData) => {
202
+ if (!this.connector) return;
203
+
204
+ // Handle disconnect
187
205
  if (accountData.status === 'disconnected' && prevAccountData.address) {
188
206
  this.onDisconnect();
207
+
208
+ return;
209
+ }
210
+
211
+ // Handle account address changes
212
+ if (
213
+ accountData?.addresses &&
214
+ accountData?.address &&
215
+ accountData.address !== prevAccountData?.address
216
+ ) {
217
+ this.onAccountsChanged([...accountData.addresses]);
189
218
  }
190
219
 
191
- if (accountData?.chainId && accountData?.chainId !== prevAccountData?.chainId) {
220
+ // Handle chain changes
221
+ if (accountData?.chainId && accountData.chainId !== prevAccountData?.chainId) {
192
222
  this.onChainChanged(accountData.chainId?.toString());
193
223
  }
194
224
  }
@@ -1,58 +1,75 @@
1
1
  import type { Provider, WalletConnector } from '@reown/appkit-common-react-native';
2
+
2
3
  import {
3
4
  getAddress,
4
5
  numberToHex,
6
+ RpcError,
5
7
  SwitchChainError,
6
8
  UserRejectedRequestError,
7
9
  type Hex
8
10
  } from 'viem';
9
- import { ChainNotConfiguredError, createConnector, ProviderNotFoundError } from 'wagmi';
10
- import { formatNetwork } from '../utils/helpers';
11
+ import {
12
+ ChainNotConfiguredError,
13
+ createConnector,
14
+ ProviderNotFoundError,
15
+ type Connector
16
+ } from 'wagmi';
17
+
18
+ type UniversalConnector = Connector & {
19
+ onSessionDelete(data: { topic: string }): void;
20
+ };
21
+
22
+ type Properties = {
23
+ onSessionDelete(data: { topic: string }): void;
24
+ };
11
25
 
12
26
  export function UniversalConnector(appKitProvidedConnector: WalletConnector) {
13
27
  let provider: Provider | undefined;
14
28
 
15
- let accountsChangedHandler: ((accounts: string[]) => void) | undefined;
16
- let chainChangedHandler: ((chainId: string | number) => void) | undefined;
17
- let disconnectHandler: ((error?: Error) => void) | undefined;
29
+ let accountsChanged: UniversalConnector['onAccountsChanged'] | undefined;
30
+ let chainChanged: UniversalConnector['onChainChanged'] | undefined;
31
+ let sessionDelete: UniversalConnector['onSessionDelete'] | undefined;
32
+ let disconnect: UniversalConnector['onDisconnect'] | undefined;
18
33
 
19
- type AppKitConnectorProperties = { ready: boolean };
34
+ function cleanupEventListeners(_provider?: Provider | null) {
35
+ if (accountsChanged) {
36
+ _provider?.off('accountsChanged', accountsChanged);
37
+ accountsChanged = undefined;
38
+ }
39
+ if (chainChanged) {
40
+ _provider?.off('chainChanged', chainChanged);
41
+ chainChanged = undefined;
42
+ }
43
+ if (disconnect) {
44
+ _provider?.off('disconnect', disconnect);
45
+ disconnect = undefined;
46
+ }
47
+ if (sessionDelete) {
48
+ _provider?.off('session_delete', sessionDelete);
49
+ sessionDelete = undefined;
50
+ }
51
+ }
20
52
 
21
- return createConnector<Provider, AppKitConnectorProperties>(config => ({
53
+ return createConnector<Provider, Properties>(config => ({
22
54
  id: 'walletconnect',
23
55
  name: 'WalletConnect',
24
56
  type: 'walletconnect' as const,
25
- ready: !!appKitProvidedConnector.getProvider(),
57
+ ready: !!appKitProvidedConnector.getProvider('eip155'),
26
58
 
27
59
  async setup() {
28
- provider = appKitProvidedConnector.getProvider();
29
- if (provider?.on) {
30
- accountsChangedHandler = (accounts: string[]) => {
31
- const hexAccounts = accounts.map(acc => getAddress(acc));
32
- config.emitter.emit('change', { accounts: hexAccounts });
33
- if (hexAccounts.length === 0) {
34
- config.emitter.emit('disconnect');
35
- }
36
- };
37
- chainChangedHandler = (chainId: string | number) => {
38
- const newChainId = typeof chainId === 'string' ? parseInt(chainId, 10) : chainId;
39
- config.emitter.emit('change', { chainId: newChainId });
40
- };
41
- disconnectHandler = (error?: Error) => {
42
- config.emitter.emit('disconnect');
43
- if (error) config.emitter.emit('error', { error });
44
- };
45
-
46
- if (accountsChangedHandler) provider.on('accountsChanged', accountsChangedHandler);
47
- if (chainChangedHandler) provider.on('chainChanged', chainChangedHandler);
48
- if (disconnectHandler) provider.on('disconnect', disconnectHandler);
49
- if (disconnectHandler) provider.on('session_delete', disconnectHandler);
60
+ const _provider = await this.getProvider().catch(() => null);
61
+ if (!_provider) {
62
+ return;
63
+ }
64
+ if (!sessionDelete) {
65
+ sessionDelete = this.onSessionDelete.bind(this);
66
+ _provider.on('session_delete', sessionDelete);
50
67
  }
51
68
  },
52
69
 
53
70
  async connect({ chainId } = {}) {
54
71
  try {
55
- const _provider = await this.getProvider();
72
+ const _provider = appKitProvidedConnector.getProvider('eip155');
56
73
  if (!_provider) throw new ProviderNotFoundError();
57
74
 
58
75
  // AppKit connector is already connected or handles its own connection.
@@ -71,8 +88,22 @@ export function UniversalConnector(appKitProvidedConnector: WalletConnector) {
71
88
  await this.switchChain?.({ chainId });
72
89
  currentChainId = chainId;
73
90
  }
74
-
75
- this.ready = true;
91
+ if (!accountsChanged) {
92
+ accountsChanged = this.onAccountsChanged.bind(this);
93
+ _provider.on('accountsChanged', accountsChanged);
94
+ }
95
+ if (!chainChanged) {
96
+ chainChanged = this.onChainChanged.bind(this);
97
+ _provider.on('chainChanged', chainChanged);
98
+ }
99
+ if (!disconnect) {
100
+ disconnect = this.onDisconnect.bind(this);
101
+ _provider.on('disconnect', disconnect);
102
+ }
103
+ if (!sessionDelete) {
104
+ sessionDelete = this.onSessionDelete.bind(this);
105
+ _provider.on('session_delete', sessionDelete);
106
+ }
76
107
 
77
108
  return { accounts: accountAddresses, chainId: currentChainId };
78
109
  } catch (error) {
@@ -82,24 +113,22 @@ export function UniversalConnector(appKitProvidedConnector: WalletConnector) {
82
113
  },
83
114
 
84
115
  async disconnect() {
85
- await appKitProvidedConnector.disconnect();
86
- config.emitter.emit('message', { type: 'externalDisconnect' });
87
- if (provider?.off && accountsChangedHandler && chainChangedHandler && disconnectHandler) {
88
- provider.off('accountsChanged', accountsChangedHandler);
89
- provider.off('chainChanged', chainChangedHandler);
90
- provider.off('disconnect', disconnectHandler);
91
- provider.off('session_delete', disconnectHandler);
92
- accountsChangedHandler = undefined;
93
- chainChangedHandler = undefined;
94
- disconnectHandler = undefined;
116
+ const _provider = await this.getProvider().catch(() => null);
117
+ try {
118
+ await appKitProvidedConnector.disconnect();
119
+ config.emitter.emit('message', { type: 'externalDisconnect' });
120
+ } catch (error) {
121
+ if (!/No matching key/i.test((error as Error).message)) {
122
+ throw error;
123
+ }
124
+ } finally {
125
+ cleanupEventListeners(_provider);
95
126
  }
96
- this.ready = false;
97
127
  },
98
128
 
99
129
  async getAccounts() {
100
130
  const namespaces = appKitProvidedConnector.getNamespaces();
101
- // @ts-ignore
102
- const eip155Accounts = namespaces?.eip155?.accounts;
131
+ const eip155Accounts = namespaces?.['eip155']?.accounts as string[] | undefined;
103
132
  if (!eip155Accounts) return [] as readonly Hex[];
104
133
 
105
134
  return eip155Accounts
@@ -119,8 +148,7 @@ export function UniversalConnector(appKitProvidedConnector: WalletConnector) {
119
148
 
120
149
  // Fallback: Try to get from CAIP accounts if available
121
150
  const namespaces = appKitProvidedConnector.getNamespaces();
122
- // @ts-ignore
123
- const eip155Accounts = namespaces?.eip155?.accounts;
151
+ const eip155Accounts = namespaces?.['eip155']?.accounts as string[] | undefined;
124
152
  if (eip155Accounts && eip155Accounts.length > 0) {
125
153
  const parts = eip155Accounts[0]?.split(':');
126
154
  if (parts && parts.length > 1 && typeof parts[1] === 'string') {
@@ -136,10 +164,10 @@ export function UniversalConnector(appKitProvidedConnector: WalletConnector) {
136
164
 
137
165
  async getProvider() {
138
166
  if (!provider) {
139
- provider = appKitProvidedConnector.getProvider();
167
+ provider = appKitProvidedConnector.getProvider('eip155');
140
168
  }
141
169
 
142
- return provider as Provider;
170
+ return provider;
143
171
  },
144
172
 
145
173
  async isAuthorized() {
@@ -153,7 +181,7 @@ export function UniversalConnector(appKitProvidedConnector: WalletConnector) {
153
181
  },
154
182
 
155
183
  async switchChain({ chainId }) {
156
- const _provider = await this.getProvider();
184
+ const _provider = appKitProvidedConnector.getProvider('eip155');
157
185
  if (!_provider) throw new Error('Provider not available for switching chain.');
158
186
  const newChain = config.chains.find(c => c.id === chainId);
159
187
 
@@ -165,28 +193,27 @@ export function UniversalConnector(appKitProvidedConnector: WalletConnector) {
165
193
  params: [{ chainId: numberToHex(chainId) }]
166
194
  });
167
195
 
168
- config.emitter.emit('change', { chainId });
169
-
170
196
  return newChain;
171
- } catch (error) {
172
- // Try to add chain if switch failed (common pattern)
173
- //4902 in MetaMask: Unrecognized chain ID
197
+ } catch (err) {
198
+ const error = err as RpcError;
199
+
200
+ if (/(user rejected)/i.test(error.message)) throw new UserRejectedRequestError(error);
201
+
174
202
  if ((error as any)?.code === 4902 || (error as any)?.data?.originalError?.code === 4902) {
203
+ // Indicates chain is not added to provider
175
204
  try {
205
+ const addEthereumChainParams = {
206
+ chainId: numberToHex(chainId),
207
+ chainName: newChain.name,
208
+ nativeCurrency: newChain.nativeCurrency,
209
+ rpcUrls: [newChain.rpcUrls.default?.http[0] ?? ''],
210
+ blockExplorerUrls: [newChain.blockExplorers?.default?.url]
211
+ };
212
+
176
213
  await _provider.request({
177
214
  method: 'wallet_addEthereumChain',
178
- params: [
179
- {
180
- chainId: numberToHex(chainId),
181
- chainName: newChain.name,
182
- nativeCurrency: newChain.nativeCurrency,
183
- rpcUrls: [newChain.rpcUrls.default?.http[0] ?? ''], // Take first default HTTP RPC URL
184
- blockExplorerUrls: [newChain.blockExplorers?.default?.url]
185
- }
186
- ]
215
+ params: [addEthereumChainParams]
187
216
  });
188
- await appKitProvidedConnector.switchNetwork(formatNetwork(newChain));
189
- config.emitter.emit('change', { chainId });
190
217
 
191
218
  return newChain;
192
219
  } catch (addError) {
@@ -198,17 +225,41 @@ export function UniversalConnector(appKitProvidedConnector: WalletConnector) {
198
225
  },
199
226
 
200
227
  onAccountsChanged(accounts: string[]) {
201
- if (accounts.length === 0) this.onDisconnect();
202
- else config.emitter.emit('change', { accounts: accounts.map(x => getAddress(x)) });
228
+ //Only emit if the account is an evm account
229
+ const shouldEmit = accounts.some(account => account.startsWith('0x'));
230
+
231
+ if (accounts.length === 0) {
232
+ this.onDisconnect();
233
+ } else if (shouldEmit) {
234
+ config.emitter.emit('change', { accounts: accounts.map(x => getAddress(x)) });
235
+ }
203
236
  },
204
237
 
205
238
  onChainChanged(chain: string) {
206
239
  const chainId = Number(chain);
207
- config.emitter.emit('change', { chainId });
240
+
241
+ //Only emit if the chain is in the config (evm)
242
+ const shouldEmit = config.chains.some(c => c.id === chainId);
243
+ if (shouldEmit) {
244
+ config.emitter.emit('change', { chainId });
245
+ }
208
246
  },
209
247
 
210
- onDisconnect: () => {
248
+ async onDisconnect() {
211
249
  config.emitter.emit('disconnect');
250
+
251
+ try {
252
+ const _provider = await this.getProvider();
253
+ cleanupEventListeners(_provider);
254
+ } catch (error) {
255
+ // If provider is not available, still clean up local references
256
+ // to prevent memory leaks
257
+ cleanupEventListeners(null);
258
+ }
259
+ },
260
+
261
+ onSessionDelete() {
262
+ this.onDisconnect();
212
263
  }
213
264
  }));
214
265
  }