@reown/appkit-wagmi-react-native 0.0.0-develop-20250728153935 → 0.0.0-develop-20251030154825

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 (51) hide show
  1. package/lib/commonjs/adapter.js +183 -0
  2. package/lib/commonjs/adapter.js.map +1 -0
  3. package/lib/commonjs/connectors/UniversalConnector.js +230 -0
  4. package/lib/commonjs/connectors/UniversalConnector.js.map +1 -0
  5. package/lib/commonjs/index.js +8 -121
  6. package/lib/commonjs/index.js.map +1 -1
  7. package/lib/commonjs/package.json +1 -0
  8. package/lib/commonjs/utils/helpers.js +16 -45
  9. package/lib/commonjs/utils/helpers.js.map +1 -1
  10. package/lib/module/adapter.js +178 -0
  11. package/lib/module/adapter.js.map +1 -0
  12. package/lib/module/connectors/UniversalConnector.js +226 -0
  13. package/lib/module/connectors/UniversalConnector.js.map +1 -0
  14. package/lib/module/index.js +4 -91
  15. package/lib/module/index.js.map +1 -1
  16. package/lib/module/utils/helpers.js +16 -41
  17. package/lib/module/utils/helpers.js.map +1 -1
  18. package/lib/typescript/adapter.d.ts +27 -0
  19. package/lib/typescript/adapter.d.ts.map +1 -0
  20. package/lib/typescript/connectors/UniversalConnector.d.ts +9 -0
  21. package/lib/typescript/connectors/UniversalConnector.d.ts.map +1 -0
  22. package/lib/typescript/index.d.ts +3 -24
  23. package/lib/typescript/index.d.ts.map +1 -1
  24. package/lib/typescript/utils/helpers.d.ts +3 -13
  25. package/lib/typescript/utils/helpers.d.ts.map +1 -1
  26. package/package.json +12 -28
  27. package/src/adapter.ts +227 -0
  28. package/src/connectors/UniversalConnector.ts +265 -0
  29. package/src/index.tsx +3 -121
  30. package/src/utils/helpers.ts +17 -57
  31. package/lib/commonjs/client.js +0 -516
  32. package/lib/commonjs/client.js.map +0 -1
  33. package/lib/commonjs/connectors/WalletConnectConnector.js +0 -355
  34. package/lib/commonjs/connectors/WalletConnectConnector.js.map +0 -1
  35. package/lib/commonjs/utils/defaultWagmiConfig.js +0 -46
  36. package/lib/commonjs/utils/defaultWagmiConfig.js.map +0 -1
  37. package/lib/module/client.js +0 -510
  38. package/lib/module/client.js.map +0 -1
  39. package/lib/module/connectors/WalletConnectConnector.js +0 -350
  40. package/lib/module/connectors/WalletConnectConnector.js.map +0 -1
  41. package/lib/module/utils/defaultWagmiConfig.js +0 -40
  42. package/lib/module/utils/defaultWagmiConfig.js.map +0 -1
  43. package/lib/typescript/client.d.ts +0 -40
  44. package/lib/typescript/client.d.ts.map +0 -1
  45. package/lib/typescript/connectors/WalletConnectConnector.d.ts +0 -74
  46. package/lib/typescript/connectors/WalletConnectConnector.d.ts.map +0 -1
  47. package/lib/typescript/utils/defaultWagmiConfig.d.ts +0 -11
  48. package/lib/typescript/utils/defaultWagmiConfig.d.ts.map +0 -1
  49. package/src/client.ts +0 -644
  50. package/src/connectors/WalletConnectConnector.ts +0 -472
  51. package/src/utils/defaultWagmiConfig.ts +0 -53
@@ -3,61 +3,32 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.getAuthCaipNetworks = getAuthCaipNetworks;
7
- exports.getCaipDefaultChain = getCaipDefaultChain;
6
+ exports.formatNetwork = formatNetwork;
7
+ exports.formatNetworks = formatNetworks;
8
8
  exports.getTransport = getTransport;
9
- exports.getWalletConnectCaipNetworks = getWalletConnectCaipNetworks;
10
- exports.requireCaipAddress = requireCaipAddress;
11
- var _appkitScaffoldReactNative = require("@reown/appkit-scaffold-react-native");
12
- var _appkitCommonReactNative = require("@reown/appkit-common-react-native");
13
9
  var _viem = require("viem");
14
- function getCaipDefaultChain(chain) {
15
- if (!chain) {
16
- return undefined;
17
- }
18
- return {
19
- id: `${_appkitCommonReactNative.ConstantsUtil.EIP155}:${chain.id}`,
20
- name: chain.name,
21
- imageId: _appkitCommonReactNative.PresetsUtil.EIP155NetworkImageIds[chain.id]
22
- };
23
- }
24
- async function getWalletConnectCaipNetworks(connector) {
25
- if (!connector) {
26
- throw new Error('networkControllerClient:getApprovedCaipNetworks - connector is undefined');
27
- }
28
- const provider = await connector?.getProvider();
29
- const ns = provider?.signer?.session?.namespaces;
30
- const nsMethods = ns?.[_appkitCommonReactNative.ConstantsUtil.EIP155]?.methods;
31
- const nsChains = ns?.[_appkitCommonReactNative.ConstantsUtil.EIP155]?.chains;
32
- return {
33
- supportsAllNetworks: Boolean(nsMethods?.includes(_appkitCommonReactNative.ConstantsUtil.ADD_CHAIN_METHOD)),
34
- approvedCaipNetworkIds: nsChains
35
- };
36
- }
37
- function getAuthCaipNetworks() {
38
- return {
39
- supportsAllNetworks: false,
40
- approvedCaipNetworkIds: _appkitCommonReactNative.PresetsUtil.RpcChainIds.map(id => `${_appkitCommonReactNative.ConstantsUtil.EIP155}:${id}`)
41
- };
42
- }
10
+ var _appkitCommonReactNative = require("@reown/appkit-common-react-native");
43
11
  function getTransport({
44
12
  chainId,
45
13
  projectId
46
14
  }) {
47
- const RPC_URL = _appkitScaffoldReactNative.CoreHelperUtil.getBlockchainApiUrl();
15
+ const RPC_URL = _appkitCommonReactNative.ConstantsUtil.BLOCKCHAIN_API_RPC_URL;
48
16
  if (!_appkitCommonReactNative.PresetsUtil.RpcChainIds.includes(chainId)) {
49
17
  return (0, _viem.http)();
50
18
  }
51
19
  return (0, _viem.http)(`${RPC_URL}/v1/?chainId=${_appkitCommonReactNative.ConstantsUtil.EIP155}:${chainId}&projectId=${projectId}`);
52
20
  }
53
- function requireCaipAddress(caipAddress) {
54
- if (!caipAddress) {
55
- throw new Error('No CAIP address provided');
56
- }
57
- const account = caipAddress.split(':')[2];
58
- if (!account) {
59
- throw new Error('Invalid CAIP address');
60
- }
61
- return account;
21
+ function formatNetwork(network) {
22
+ return {
23
+ ...network,
24
+ rpcUrls: {
25
+ ...network.rpcUrls
26
+ },
27
+ chainNamespace: 'eip155',
28
+ caipNetworkId: `eip155:${network.id}`
29
+ };
30
+ }
31
+ function formatNetworks(networks) {
32
+ return networks.map(formatNetwork);
62
33
  }
63
34
  //# sourceMappingURL=helpers.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_appkitScaffoldReactNative","require","_appkitCommonReactNative","_viem","getCaipDefaultChain","chain","undefined","id","ConstantsUtil","EIP155","name","imageId","PresetsUtil","EIP155NetworkImageIds","getWalletConnectCaipNetworks","connector","Error","provider","getProvider","ns","signer","session","namespaces","nsMethods","methods","nsChains","chains","supportsAllNetworks","Boolean","includes","ADD_CHAIN_METHOD","approvedCaipNetworkIds","getAuthCaipNetworks","RpcChainIds","map","getTransport","chainId","projectId","RPC_URL","CoreHelperUtil","getBlockchainApiUrl","http","requireCaipAddress","caipAddress","account","split"],"sourceRoot":"../../../src","sources":["utils/helpers.ts"],"mappings":";;;;;;;;;;AAAA,IAAAA,0BAAA,GAAAC,OAAA;AAKA,IAAAC,wBAAA,GAAAD,OAAA;AAIA,IAAAE,KAAA,GAAAF,OAAA;AAEO,SAASG,mBAAmBA,CAACC,KAA2C,EAAE;EAC/E,IAAI,CAACA,KAAK,EAAE;IACV,OAAOC,SAAS;EAClB;EAEA,OAAO;IACLC,EAAE,EAAG,GAAEC,sCAAa,CAACC,MAAO,IAAGJ,KAAK,CAACE,EAAG,EAAC;IACzCG,IAAI,EAAEL,KAAK,CAACK,IAAI;IAChBC,OAAO,EAAEC,oCAAW,CAACC,qBAAqB,CAACR,KAAK,CAACE,EAAE;EACrD,CAAC;AACH;AAEO,eAAeO,4BAA4BA,CAACC,SAAqB,EAAE;EACxE,IAAI,CAACA,SAAS,EAAE;IACd,MAAM,IAAIC,KAAK,CAAC,0EAA0E,CAAC;EAC7F;EACA,MAAMC,QAAQ,GAAI,MAAMF,SAAS,EAAEG,WAAW,CAAC,CAE9C;EACD,MAAMC,EAAE,GAAGF,QAAQ,EAAEG,MAAM,EAAEC,OAAO,EAAEC,UAAU;EAChD,MAAMC,SAAS,GAAGJ,EAAE,GAAGX,sCAAa,CAACC,MAAM,CAAC,EAAEe,OAAO;EACrD,MAAMC,QAAQ,GAAGN,EAAE,GAAGX,sCAAa,CAACC,MAAM,CAAC,EAAEiB,MAAyB;EAEtE,OAAO;IACLC,mBAAmB,EAAEC,OAAO,CAACL,SAAS,EAAEM,QAAQ,CAACrB,sCAAa,CAACsB,gBAAgB,CAAC,CAAC;IACjFC,sBAAsB,EAAEN;EAC1B,CAAC;AACH;AAEO,SAASO,mBAAmBA,CAAA,EAAG;EACpC,OAAO;IACLL,mBAAmB,EAAE,KAAK;IAC1BI,sBAAsB,EAAEnB,oCAAW,CAACqB,WAAW,CAACC,GAAG,CACjD3B,EAAE,IAAK,GAAEC,sCAAa,CAACC,MAAO,IAAGF,EAAG,EACtC;EACF,CAAC;AACH;AAEO,SAAS4B,YAAYA,CAAC;EAAEC,OAAO;EAAEC;AAAkD,CAAC,EAAE;EAC3F,MAAMC,OAAO,GAAGC,yCAAc,CAACC,mBAAmB,CAAC,CAAC;EAEpD,IAAI,CAAC5B,oCAAW,CAACqB,WAAW,CAACJ,QAAQ,CAACO,OAAO,CAAC,EAAE;IAC9C,OAAO,IAAAK,UAAI,EAAC,CAAC;EACf;EAEA,OAAO,IAAAA,UAAI,EAAE,GAAEH,OAAQ,gBAAe9B,sCAAa,CAACC,MAAO,IAAG2B,OAAQ,cAAaC,SAAU,EAAC,CAAC;AACjG;AAEO,SAASK,kBAAkBA,CAACC,WAAmB,EAAE;EACtD,IAAI,CAACA,WAAW,EAAE;IAChB,MAAM,IAAI3B,KAAK,CAAC,0BAA0B,CAAC;EAC7C;EACA,MAAM4B,OAAO,GAAGD,WAAW,CAACE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAQ;EAChD,IAAI,CAACD,OAAO,EAAE;IACZ,MAAM,IAAI5B,KAAK,CAAC,sBAAsB,CAAC;EACzC;EAEA,OAAO4B,OAAO;AAChB"}
1
+ {"version":3,"names":["_viem","require","_appkitCommonReactNative","getTransport","chainId","projectId","RPC_URL","ConstantsUtil","BLOCKCHAIN_API_RPC_URL","PresetsUtil","RpcChainIds","includes","http","EIP155","formatNetwork","network","rpcUrls","chainNamespace","caipNetworkId","id","formatNetworks","networks","map"],"sourceRoot":"../../../src","sources":["utils/helpers.ts"],"mappings":";;;;;;;;AAAA,IAAAA,KAAA,GAAAC,OAAA;AACA,IAAAC,wBAAA,GAAAD,OAAA;AAOO,SAASE,YAAYA,CAAC;EAAEC,OAAO;EAAEC;AAAkD,CAAC,EAAE;EAC3F,MAAMC,OAAO,GAAGC,sCAAa,CAACC,sBAAsB;EAEpD,IAAI,CAACC,oCAAW,CAACC,WAAW,CAACC,QAAQ,CAACP,OAAO,CAAC,EAAE;IAC9C,OAAO,IAAAQ,UAAI,EAAC,CAAC;EACf;EAEA,OAAO,IAAAA,UAAI,EAAC,GAAGN,OAAO,gBAAgBC,sCAAa,CAACM,MAAM,IAAIT,OAAO,cAAcC,SAAS,EAAE,CAAC;AACjG;AAEO,SAASS,aAAaA,CAACC,OAAgB,EAAiB;EAC7D,OAAO;IACL,GAAGA,OAAO;IACVC,OAAO,EAAE;MAAE,GAAGD,OAAO,CAACC;IAAQ,CAAC;IAC/BC,cAAc,EAAE,QAAQ;IACxBC,aAAa,EAAE,UAAUH,OAAO,CAACI,EAAE;EACrC,CAAC;AACH;AAEO,SAASC,cAAcA,CAACC,QAAmB,EAAmB;EACnE,OAAOA,QAAQ,CAACC,GAAG,CAACR,aAAa,CAAC;AACpC","ignoreList":[]}
@@ -0,0 +1,178 @@
1
+ "use strict";
2
+
3
+ import { EVMAdapter } from '@reown/appkit-common-react-native';
4
+ import { createConfig, getBalance as getBalanceWagmi, switchChain as switchChainWagmi, disconnect as disconnectWagmiCore, connect as connectWagmi, watchAccount } from '@wagmi/core';
5
+ import { getTransport } from './utils/helpers';
6
+ import { formatUnits } from 'viem';
7
+ import { UniversalConnector } from './connectors/UniversalConnector';
8
+ export class WagmiAdapter extends EVMAdapter {
9
+ static supportedNamespace = 'eip155';
10
+ constructor(configParams) {
11
+ super({
12
+ supportedNamespace: WagmiAdapter.supportedNamespace,
13
+ adapterType: 'wagmi'
14
+ });
15
+ this.wagmiChains = configParams.networks;
16
+ this.wagmiConfig = this.createWagmiInternalConfig(configParams);
17
+ }
18
+ createWagmiInternalConfig(configParams) {
19
+ // Connectors are typically added via wagmiConfig.connectors, but here AppKit manages the connection.
20
+ // We'll use the `connect` action with our dynamically created connector instance.
21
+ // So, the `connectors` array for createConfig can be empty and is added later.
22
+ const initialConnectors = [];
23
+ const transportsArr = configParams.networks.map(chain => [chain.id, getTransport({
24
+ chainId: chain.id,
25
+ projectId: configParams.projectId
26
+ })]);
27
+ const transports = Object.fromEntries(transportsArr);
28
+ return createConfig({
29
+ chains: configParams.networks,
30
+ connectors: initialConnectors,
31
+ // Empty, as we connect programmatically
32
+ transports,
33
+ multiInjectedProviderDiscovery: false
34
+ });
35
+ }
36
+ async switchNetwork(network) {
37
+ if (!this.wagmiConfigConnector) {
38
+ throw new Error('WagmiAdapter: AppKit connector not set or not connected via Wagmi.');
39
+ }
40
+ await switchChainWagmi(this.wagmiConfig, {
41
+ chainId: network.id,
42
+ connector: this.wagmiConfigConnector
43
+ });
44
+ }
45
+ async getBalance(params) {
46
+ const {
47
+ network,
48
+ address,
49
+ tokens
50
+ } = params;
51
+ if (!this.connector) throw new Error('No active AppKit connector (EVMAdapter.connector)');
52
+ if (!network) throw new Error('No network provided');
53
+ if (!this.wagmiConfigConnector) {
54
+ throw new Error('WagmiAdapter: AppKit connector not properly configured with Wagmi.');
55
+ }
56
+ const balanceAddress = address || this.getAccounts()?.find(acc => acc.includes(network.id.toString()));
57
+ if (!balanceAddress) {
58
+ return Promise.resolve({
59
+ amount: '0.00',
60
+ symbol: network.nativeCurrency.symbol || 'ETH'
61
+ });
62
+ }
63
+ const accountHex = balanceAddress.split(':')[2];
64
+ const token = network?.caipNetworkId && tokens?.[network.caipNetworkId]?.address;
65
+ const balance = await getBalanceWagmi(this.wagmiConfig, {
66
+ address: accountHex,
67
+ chainId: network.id,
68
+ token
69
+ });
70
+ const formattedBalance = {
71
+ amount: formatUnits(balance.value, balance.decimals),
72
+ symbol: balance.symbol,
73
+ address: token ? `${network.caipNetworkId}:${token}` : undefined
74
+ };
75
+ this.emit('balanceChanged', {
76
+ address: balanceAddress,
77
+ balance: formattedBalance
78
+ });
79
+ return Promise.resolve(formattedBalance);
80
+ }
81
+ getAccounts() {
82
+ if (!this.connector) {
83
+ return undefined;
84
+ }
85
+ const namespaces = this.connector.getNamespaces();
86
+ if (!namespaces) {
87
+ return undefined;
88
+ }
89
+ const supportedNamespaceKey = this.getSupportedNamespace();
90
+ const accountsForNamespace = namespaces[supportedNamespaceKey];
91
+ return accountsForNamespace?.accounts;
92
+ }
93
+ async disconnect() {
94
+ if (this.unsubscribeWatchAccount) {
95
+ this.unsubscribeWatchAccount();
96
+ this.unsubscribeWatchAccount = undefined;
97
+ }
98
+ if (this.wagmiConfigConnector) {
99
+ await disconnectWagmiCore(this.wagmiConfig, {
100
+ connector: this.wagmiConfigConnector
101
+ });
102
+ this.wagmiConfigConnector = undefined;
103
+ } else if (this.connector) {
104
+ await this.connector.disconnect();
105
+ this.onDisconnect();
106
+ }
107
+ const evmAdapterInstance = this;
108
+ if ('connector' in evmAdapterInstance) {
109
+ evmAdapterInstance.connector = undefined;
110
+ }
111
+ }
112
+ getSupportedNamespace() {
113
+ return WagmiAdapter.supportedNamespace;
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
+ }
121
+ init({
122
+ connector: _connector
123
+ }) {
124
+ super.init({
125
+ connector: _connector
126
+ });
127
+ if (_connector && this.wagmiChains) {
128
+ if (!this.wagmiConfigConnector) {
129
+ // Manually add the connector to the wagmiConfig
130
+ const connectorInstance = this.wagmiConfig._internal.connectors.setup(UniversalConnector(_connector));
131
+ this.wagmiConfig._internal.connectors.setState(prev => [...prev, connectorInstance]);
132
+ this.wagmiConfigConnector = connectorInstance;
133
+ connectorInstance.emitter.on('message', ({
134
+ type
135
+ }) => {
136
+ if (type === 'externalDisconnect') {
137
+ this.onDisconnect();
138
+ this.wagmiConfigConnector = undefined;
139
+ }
140
+ });
141
+ try {
142
+ connectWagmi(this.wagmiConfig, {
143
+ connector: connectorInstance
144
+ });
145
+ } catch (error) {
146
+ this.wagmiConfigConnector = undefined;
147
+ }
148
+ }
149
+ }
150
+ this.setupWatchers();
151
+ }
152
+ setupWatchers() {
153
+ // Clean up existing subscription if any
154
+ this.unsubscribeWatchAccount?.();
155
+ this.unsubscribeWatchAccount = watchAccount(this.wagmiConfig, {
156
+ onChange: (accountData, prevAccountData) => {
157
+ if (!this.connector) return;
158
+
159
+ // Handle disconnect
160
+ if (accountData.status === 'disconnected' && prevAccountData.address) {
161
+ this.onDisconnect();
162
+ return;
163
+ }
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) {
172
+ this.onChainChanged(accountData.chainId?.toString());
173
+ }
174
+ }
175
+ });
176
+ }
177
+ }
178
+ //# sourceMappingURL=adapter.js.map
@@ -0,0 +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","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":[]}
@@ -0,0 +1,226 @@
1
+ "use strict";
2
+
3
+ import { getAddress, numberToHex, SwitchChainError, UserRejectedRequestError } from 'viem';
4
+ import { ChainNotConfiguredError, createConnector, ProviderNotFoundError } from 'wagmi';
5
+ export function UniversalConnector(appKitProvidedConnector) {
6
+ let provider;
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
+ }
29
+ return createConnector(config => ({
30
+ id: 'walletconnect',
31
+ name: 'WalletConnect',
32
+ type: 'walletconnect',
33
+ ready: !!appKitProvidedConnector.getProvider('eip155'),
34
+ async setup() {
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);
42
+ }
43
+ },
44
+ async connect({
45
+ chainId
46
+ } = {}) {
47
+ try {
48
+ const _provider = appKitProvidedConnector.getProvider('eip155');
49
+ if (!_provider) throw new ProviderNotFoundError();
50
+
51
+ // AppKit connector is already connected or handles its own connection.
52
+ // We just need to sync its state with Wagmi.
53
+ const accountAddresses = await this.getAccounts();
54
+ if (!accountAddresses || accountAddresses.length === 0) {
55
+ throw new UserRejectedRequestError(new Error('No accounts found or user rejected connection via AppKit.'));
56
+ }
57
+ let currentChainId = await this.getChainId();
58
+
59
+ // Handle chain switching if requested and different
60
+ if (chainId && currentChainId !== chainId) {
61
+ await this.switchChain?.({
62
+ chainId
63
+ });
64
+ currentChainId = chainId;
65
+ }
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
+ }
82
+ return {
83
+ accounts: accountAddresses,
84
+ chainId: currentChainId
85
+ };
86
+ } catch (error) {
87
+ if (error instanceof UserRejectedRequestError) throw error;
88
+ throw new UserRejectedRequestError(error); // Generalize other errors as user rejection for simplicity
89
+ }
90
+ },
91
+ async disconnect() {
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);
104
+ }
105
+ },
106
+ async getAccounts() {
107
+ const namespaces = appKitProvidedConnector.getNamespaces();
108
+ const eip155Accounts = namespaces?.['eip155']?.accounts;
109
+ if (!eip155Accounts) return [];
110
+ return eip155Accounts.map(caipAddr => {
111
+ const parts = caipAddr.split(':');
112
+ return parts.length === 3 ? parts[2] : null;
113
+ }).filter(addrPart => !!addrPart).map(addrPart => getAddress(addrPart));
114
+ },
115
+ async getChainId() {
116
+ const chainId = appKitProvidedConnector.getChainId('eip155')?.split(':')[1];
117
+ if (chainId) return parseInt(chainId, 10);
118
+
119
+ // Fallback: Try to get from CAIP accounts if available
120
+ const namespaces = appKitProvidedConnector.getNamespaces();
121
+ const eip155Accounts = namespaces?.['eip155']?.accounts;
122
+ if (eip155Accounts && eip155Accounts.length > 0) {
123
+ const parts = eip155Accounts[0]?.split(':');
124
+ if (parts && parts.length > 1 && typeof parts[1] === 'string') {
125
+ const chainIdNum = parseInt(parts[1], 10);
126
+ if (!isNaN(chainIdNum)) {
127
+ return chainIdNum;
128
+ }
129
+ }
130
+ }
131
+ if (config.chains && config.chains.length > 0) return config.chains[0].id;
132
+ throw new Error('Unable to determine chainId.');
133
+ },
134
+ async getProvider() {
135
+ if (!provider) {
136
+ provider = appKitProvidedConnector.getProvider('eip155');
137
+ }
138
+ return provider;
139
+ },
140
+ async isAuthorized() {
141
+ try {
142
+ const accounts = await this.getAccounts();
143
+ return !!(accounts && accounts.length > 0);
144
+ } catch {
145
+ return false;
146
+ }
147
+ },
148
+ async switchChain({
149
+ chainId
150
+ }) {
151
+ const _provider = appKitProvidedConnector.getProvider('eip155');
152
+ if (!_provider) throw new Error('Provider not available for switching chain.');
153
+ const newChain = config.chains.find(c => c.id === chainId);
154
+ if (!newChain) throw new SwitchChainError(new ChainNotConfiguredError());
155
+ try {
156
+ await _provider.request({
157
+ method: 'wallet_switchEthereumChain',
158
+ params: [{
159
+ chainId: numberToHex(chainId)
160
+ }]
161
+ });
162
+ return newChain;
163
+ } catch (err) {
164
+ const error = err;
165
+ if (/(user rejected)/i.test(error.message)) throw new UserRejectedRequestError(error);
166
+ if (error?.code === 4902 || error?.data?.originalError?.code === 4902) {
167
+ // Indicates chain is not added to provider
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
+ };
176
+ await _provider.request({
177
+ method: 'wallet_addEthereumChain',
178
+ params: [addEthereumChainParams]
179
+ });
180
+ return newChain;
181
+ } catch (addError) {
182
+ throw new UserRejectedRequestError(addError);
183
+ }
184
+ }
185
+ throw new SwitchChainError(error);
186
+ }
187
+ },
188
+ onAccountsChanged(accounts) {
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
+ }
198
+ },
199
+ onChainChanged(chain) {
200
+ const chainId = Number(chain);
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
+ }
209
+ },
210
+ async onDisconnect() {
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();
223
+ }
224
+ }));
225
+ }
226
+ //# sourceMappingURL=UniversalConnector.js.map
@@ -0,0 +1 @@
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":[]}
@@ -1,93 +1,6 @@
1
- import '@walletconnect/react-native-compat';
2
- import { useEffect, useState, useSyncExternalStore } from 'react';
3
- export { AccountButton, AppKitButton, ConnectButton, NetworkButton, AppKit } from '@reown/appkit-scaffold-react-native';
4
- import { ConstantsUtil } from '@reown/appkit-common-react-native';
5
- export { defaultWagmiConfig } from './utils/defaultWagmiConfig';
6
- import { AppKit } from './client';
1
+ "use strict";
7
2
 
8
- // -- Types -------------------------------------------------------------------
9
-
10
- // -- Setup -------------------------------------------------------------------
11
- let modal;
12
- export function createAppKit(options) {
13
- if (!modal) {
14
- modal = new AppKit({
15
- ...options,
16
- _sdkVersion: `react-native-wagmi-${ConstantsUtil.VERSION}`
17
- });
18
- }
19
- return modal;
20
- }
21
-
22
- // -- Hooks -------------------------------------------------------------------
23
- export function useAppKit() {
24
- if (!modal) {
25
- throw new Error('Please call "createAppKit" before using "useAppKit" hook');
26
- }
27
- async function open(options) {
28
- await modal?.open(options);
29
- }
30
- async function close() {
31
- await modal?.close();
32
- }
33
- return {
34
- open,
35
- close
36
- };
37
- }
38
- export function useAppKitState() {
39
- if (!modal) {
40
- throw new Error('Please call "createAppKit" before using "useAppKitState" hook');
41
- }
42
- const [state, setState] = useState(modal.getState());
43
- useEffect(() => {
44
- const unsubscribe = modal?.subscribeState(newState => {
45
- if (newState) setState({
46
- ...newState
47
- });
48
- });
49
- return () => {
50
- unsubscribe?.();
51
- };
52
- }, []);
53
- return state;
54
- }
55
- export function useWalletInfo() {
56
- if (!modal) {
57
- throw new Error('Please call "createAppKit" before using "useWalletInfo" hook');
58
- }
59
- const walletInfo = useSyncExternalStore(modal.subscribeWalletInfo, modal.getWalletInfo, modal.getWalletInfo);
60
- return {
61
- walletInfo
62
- };
63
- }
64
- export function useAppKitEvents(callback) {
65
- if (!modal) {
66
- throw new Error('Please call "createAppKit" before using "useAppKitEvents" hook');
67
- }
68
- const [event, setEvents] = useState(modal.getEvent());
69
- useEffect(() => {
70
- const unsubscribe = modal?.subscribeEvents(newEvent => {
71
- setEvents({
72
- ...newEvent
73
- });
74
- callback?.(newEvent);
75
- });
76
- return () => {
77
- unsubscribe?.();
78
- };
79
- }, [callback]);
80
- return event;
81
- }
82
- export function useAppKitEventSubscription(event, callback) {
83
- if (!modal) {
84
- throw new Error('Please call "createAppKit" before using "useAppKitEventSubscription" hook');
85
- }
86
- useEffect(() => {
87
- const unsubscribe = modal?.subscribeEvent(event, callback);
88
- return () => {
89
- unsubscribe?.();
90
- };
91
- }, [callback, event]);
92
- }
3
+ import { WagmiAdapter } from './adapter';
4
+ export { WagmiAdapter };
5
+ export { formatNetworks, formatNetwork } from './utils/helpers';
93
6
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["useEffect","useState","useSyncExternalStore","AccountButton","AppKitButton","ConnectButton","NetworkButton","AppKit","ConstantsUtil","defaultWagmiConfig","modal","createAppKit","options","_sdkVersion","VERSION","useAppKit","Error","open","close","useAppKitState","state","setState","getState","unsubscribe","subscribeState","newState","useWalletInfo","walletInfo","subscribeWalletInfo","getWalletInfo","useAppKitEvents","callback","event","setEvents","getEvent","subscribeEvents","newEvent","useAppKitEventSubscription","subscribeEvent"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":"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"}
1
+ {"version":3,"names":["WagmiAdapter","formatNetworks","formatNetwork"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":";;AAAA,SAASA,YAAY,QAAQ,WAAW;AAExC,SAASA,YAAY;AACrB,SAASC,cAAc,EAAEC,aAAa,QAAQ,iBAAiB","ignoreList":[]}