@reown/appkit-wagmi-react-native 0.0.0-fix-approved-networks-20250822000414 → 0.0.0-fix-ui-changes-20250828183750

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 +160 -0
  2. package/lib/commonjs/adapter.js.map +1 -0
  3. package/lib/commonjs/connectors/UniversalConnector.js +204 -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 +155 -0
  11. package/lib/module/adapter.js.map +1 -0
  12. package/lib/module/connectors/UniversalConnector.js +200 -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 +25 -0
  19. package/lib/typescript/adapter.d.ts.map +1 -0
  20. package/lib/typescript/connectors/UniversalConnector.d.ts +5 -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 +8 -24
  27. package/src/adapter.ts +197 -0
  28. package/src/connectors/UniversalConnector.ts +214 -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
@@ -1,54 +1,13 @@
1
+ import { http } from 'viem';
1
2
  import {
2
- CoreHelperUtil,
3
- type CaipNetwork,
4
- type CaipNetworkId
5
- } from '@reown/appkit-scaffold-react-native';
6
- import { PresetsUtil, ConstantsUtil } from '@reown/appkit-common-react-native';
7
- import type { Connector } from '@wagmi/core';
8
- import { EthereumProvider } from '@walletconnect/ethereum-provider';
9
- import type { AppKitClientOptions } from '../client';
10
- import { http, type Hex } from 'viem';
11
-
12
- export function getCaipDefaultChain(chain?: AppKitClientOptions['defaultChain']) {
13
- if (!chain) {
14
- return undefined;
15
- }
16
-
17
- return {
18
- id: `${ConstantsUtil.EIP155}:${chain.id}`,
19
- name: chain.name,
20
- imageId: PresetsUtil.EIP155NetworkImageIds[chain.id]
21
- } as CaipNetwork;
22
- }
23
-
24
- export async function getWalletConnectCaipNetworks(connector?: Connector) {
25
- if (!connector) {
26
- throw new Error('networkControllerClient:getApprovedCaipNetworks - connector is undefined');
27
- }
28
- const provider = (await connector?.getProvider()) as Awaited<
29
- ReturnType<(typeof EthereumProvider)['init']>
30
- >;
31
- const ns = provider?.signer?.session?.namespaces;
32
- const nsMethods = ns?.[ConstantsUtil.EIP155]?.methods;
33
- const nsChains = ns?.[ConstantsUtil.EIP155]?.chains as CaipNetworkId[];
34
-
35
- return {
36
- supportsAllNetworks: Boolean(nsMethods?.includes(ConstantsUtil.ADD_CHAIN_METHOD)),
37
- approvedCaipNetworkIds: nsChains
38
- };
39
- }
40
-
41
- export function getAuthCaipNetworks() {
42
- return {
43
- supportsAllNetworks: false,
44
- approvedCaipNetworkIds: PresetsUtil.RpcChainIds.map(
45
- id => `${ConstantsUtil.EIP155}:${id}`
46
- ) as CaipNetworkId[]
47
- };
48
- }
3
+ PresetsUtil,
4
+ ConstantsUtil,
5
+ type AppKitNetwork,
6
+ type Network
7
+ } from '@reown/appkit-common-react-native';
49
8
 
50
9
  export function getTransport({ chainId, projectId }: { chainId: number; projectId: string }) {
51
- const RPC_URL = CoreHelperUtil.getBlockchainApiUrl();
10
+ const RPC_URL = ConstantsUtil.BLOCKCHAIN_API_RPC_URL;
52
11
 
53
12
  if (!PresetsUtil.RpcChainIds.includes(chainId)) {
54
13
  return http();
@@ -57,14 +16,15 @@ export function getTransport({ chainId, projectId }: { chainId: number; projectI
57
16
  return http(`${RPC_URL}/v1/?chainId=${ConstantsUtil.EIP155}:${chainId}&projectId=${projectId}`);
58
17
  }
59
18
 
60
- export function requireCaipAddress(caipAddress: string) {
61
- if (!caipAddress) {
62
- throw new Error('No CAIP address provided');
63
- }
64
- const account = caipAddress.split(':')[2] as Hex;
65
- if (!account) {
66
- throw new Error('Invalid CAIP address');
67
- }
19
+ export function formatNetwork(network: Network): AppKitNetwork {
20
+ return {
21
+ ...network,
22
+ rpcUrls: { ...network.rpcUrls },
23
+ chainNamespace: 'eip155',
24
+ caipNetworkId: `eip155:${network.id}`
25
+ };
26
+ }
68
27
 
69
- return account;
28
+ export function formatNetworks(networks: Network[]): AppKitNetwork[] {
29
+ return networks.map(formatNetwork);
70
30
  }
@@ -1,516 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.AppKit = void 0;
7
- var _viem = require("viem");
8
- var _core = require("@wagmi/core");
9
- var _ens = require("viem/ens");
10
- var _chains = require("@wagmi/core/chains");
11
- var _ethereumProvider = require("@walletconnect/ethereum-provider");
12
- var _appkitScaffoldReactNative = require("@reown/appkit-scaffold-react-native");
13
- var _appkitScaffoldUtilsReactNative = require("@reown/appkit-scaffold-utils-react-native");
14
- var _appkitCommonReactNative = require("@reown/appkit-common-react-native");
15
- var _appkitSiweReactNative = require("@reown/appkit-siwe-react-native");
16
- var _helpers = require("./utils/helpers");
17
- // -- Types ---------------------------------------------------------------------
18
-
19
- // @ts-expect-error: Overriden state type is correct
20
-
21
- // -- Client --------------------------------------------------------------------
22
- class AppKit extends _appkitScaffoldReactNative.AppKitScaffold {
23
- hasSyncedConnectedAccount = false;
24
- options = undefined;
25
- constructor(options) {
26
- const {
27
- wagmiConfig,
28
- siweConfig,
29
- defaultChain,
30
- tokens,
31
- _sdkVersion,
32
- ...appKitOptions
33
- } = options;
34
- if (!wagmiConfig) {
35
- throw new Error('appkit:constructor - wagmiConfig is undefined');
36
- }
37
- if (!appKitOptions.projectId) {
38
- throw new Error(_appkitCommonReactNative.ErrorUtil.ALERT_ERRORS.PROJECT_ID_NOT_CONFIGURED.shortMessage);
39
- }
40
- const networkControllerClient = {
41
- switchCaipNetwork: async caipNetwork => {
42
- const chainId = _appkitCommonReactNative.NetworkUtil.caipNetworkIdToNumber(caipNetwork?.id);
43
- if (chainId) {
44
- await (0, _core.switchChain)(wagmiConfig, {
45
- chainId
46
- });
47
- }
48
- },
49
- async getApprovedCaipNetworksData(connectorType) {
50
- const walletConnectType = _appkitCommonReactNative.PresetsUtil.ConnectorTypesMap[_appkitCommonReactNative.ConstantsUtil.WALLET_CONNECT_CONNECTOR_ID];
51
- const authType = _appkitCommonReactNative.PresetsUtil.ConnectorTypesMap[_appkitCommonReactNative.ConstantsUtil.AUTH_CONNECTOR_ID];
52
- if (connectorType?.includes(walletConnectType)) {
53
- const connector = wagmiConfig.connectors.find(c => c.id === _appkitCommonReactNative.ConstantsUtil.WALLET_CONNECT_CONNECTOR_ID);
54
- return (0, _helpers.getWalletConnectCaipNetworks)(connector);
55
- } else if (connectorType?.includes(authType)) {
56
- return (0, _helpers.getAuthCaipNetworks)();
57
- }
58
- return {
59
- approvedCaipNetworkIds: undefined,
60
- supportsAllNetworks: true
61
- };
62
- }
63
- };
64
- const connectionControllerClient = {
65
- connectWalletConnect: async (onUri, walletUniversalLink) => {
66
- const connector = wagmiConfig.connectors.find(c => c.id === _appkitCommonReactNative.ConstantsUtil.WALLET_CONNECT_CONNECTOR_ID);
67
- if (!connector) {
68
- throw new Error('connectionControllerClient:getWalletConnectUri - connector is undefined');
69
- }
70
- const provider = await connector.getProvider();
71
- provider.on('display_uri', data => {
72
- onUri(data);
73
- });
74
-
75
- // When connecting through walletconnect, we need to set the clientId in the store
76
- const clientId = await provider.signer?.client?.core?.crypto?.getClientId();
77
- if (clientId) {
78
- this.setClientId(clientId);
79
- }
80
- const chainId = _appkitCommonReactNative.NetworkUtil.caipNetworkIdToNumber(this.getCaipNetwork()?.id);
81
-
82
- // SIWE
83
- const siweParams = await siweConfig?.getMessageParams?.();
84
- // Make sure client uses ethereum provider version that supports `authenticate`
85
- if (siweConfig?.options?.enabled && typeof provider?.authenticate === 'function' && siweParams && Object.keys(siweParams || {}).length > 0) {
86
- // @ts-expect-error - setting requested chains beforehand avoids wagmi auto disconnecting the session when `connect` is called because it things chains are stale
87
- await connector.setRequestedChainsIds(siweParams.chains);
88
- const result = await provider.authenticate({
89
- nonce: await siweConfig.getNonce(),
90
- methods: [..._ethereumProvider.OPTIONAL_METHODS],
91
- ...siweParams
92
- }, walletUniversalLink);
93
-
94
- // Auths is an array of signed CACAO objects https://github.com/ChainAgnostic/CAIPs/blob/main/CAIPs/caip-74.md
95
- const signedCacao = result?.auths?.[0];
96
- if (signedCacao) {
97
- const {
98
- p,
99
- s
100
- } = signedCacao;
101
- const cacaoChainId = (0, _appkitSiweReactNative.getDidChainId)(p.iss) || '';
102
- const address = (0, _appkitSiweReactNative.getDidAddress)(p.iss);
103
- try {
104
- // Kicks off verifyMessage and populates external states
105
- const message = provider.signer.client.formatAuthMessage({
106
- request: p,
107
- iss: p.iss
108
- });
109
- await _appkitSiweReactNative.SIWEController.verifyMessage({
110
- message,
111
- signature: s.s,
112
- cacao: signedCacao
113
- });
114
- if (address && chainId) {
115
- const session = {
116
- address,
117
- chainId: parseInt(cacaoChainId, 10)
118
- };
119
- _appkitSiweReactNative.SIWEController.setSession(session);
120
- _appkitSiweReactNative.SIWEController.onSignIn?.(session);
121
- }
122
- } catch (error) {
123
- // eslint-disable-next-line no-console
124
- console.error('Error verifying message', error);
125
- // eslint-disable-next-line no-console
126
- await provider.disconnect().catch(console.error);
127
- // eslint-disable-next-line no-console
128
- await _appkitSiweReactNative.SIWEController.signOut().catch(console.error);
129
- throw error;
130
- }
131
- /*
132
- * Unassign the connector from the wagmiConfig and allow connect() to reassign it in the next step
133
- * this avoids case where wagmi throws because the connector is already connected
134
- * what we need connect() to do is to only setup internal event listeners
135
- */
136
- this.wagmiConfig.state.current = '';
137
- }
138
- }
139
- await (0, _core.connect)(this.wagmiConfig, {
140
- connector,
141
- chainId
142
- });
143
- },
144
- connectExternal: async ({
145
- id
146
- }) => {
147
- const connector = wagmiConfig.connectors.find(c => c.id === id);
148
- if (!connector) {
149
- throw new Error('connectionControllerClient:connectExternal - connector is undefined');
150
- }
151
-
152
- // If connecting with something else than walletconnect, we need to clear the clientId in the store
153
- this.setClientId(null);
154
- const chainId = _appkitCommonReactNative.NetworkUtil.caipNetworkIdToNumber(this.getCaipNetwork()?.id);
155
- await (0, _core.connect)(this.wagmiConfig, {
156
- connector,
157
- chainId
158
- });
159
- },
160
- signMessage: async message => (0, _core.signMessage)(this.wagmiConfig, {
161
- message
162
- }),
163
- disconnect: async () => {
164
- await (0, _core.disconnect)(this.wagmiConfig);
165
- this.setClientId(null);
166
- if (siweConfig?.options?.signOutOnDisconnect) {
167
- await _appkitSiweReactNative.SIWEController.signOut();
168
- }
169
- },
170
- sendTransaction: async data => {
171
- const {
172
- chainId
173
- } = (0, _core.getAccount)(this.wagmiConfig);
174
- const txParams = {
175
- account: data.address,
176
- to: data.to,
177
- value: data.value,
178
- gas: data.gas,
179
- gasPrice: data.gasPrice,
180
- data: data.data,
181
- chainId,
182
- type: 'legacy'
183
- };
184
- await (0, _core.prepareTransactionRequest)(this.wagmiConfig, txParams);
185
- const tx = await (0, _core.sendTransaction)(this.wagmiConfig, txParams);
186
- await (0, _core.waitForTransactionReceipt)(this.wagmiConfig, {
187
- hash: tx,
188
- timeout: 25000
189
- });
190
- return tx;
191
- },
192
- writeContract: async data => {
193
- const caipAddress = this.getCaipAddress() || '';
194
- const account = (0, _helpers.requireCaipAddress)(caipAddress);
195
- const chainId = _appkitCommonReactNative.NetworkUtil.caipNetworkIdToNumber(this.getCaipNetwork()?.id);
196
- const tx = await (0, _core.writeContract)(wagmiConfig, {
197
- chainId,
198
- address: data.tokenAddress,
199
- account,
200
- abi: data.abi,
201
- functionName: data.method,
202
- args: [data.receiverAddress, data.tokenAmount]
203
- });
204
- return tx;
205
- },
206
- estimateGas: async ({
207
- address,
208
- to,
209
- data,
210
- chainNamespace
211
- }) => {
212
- if (chainNamespace && chainNamespace !== 'eip155') {
213
- throw new Error('estimateGas - chainNamespace is not eip155');
214
- }
215
- try {
216
- const result = await (0, _core.estimateGas)(this.wagmiConfig, {
217
- account: address,
218
- to: to,
219
- data: data,
220
- type: 'legacy'
221
- });
222
- return result;
223
- } catch (error) {
224
- throw new Error('WagmiAdapter:estimateGas - error estimating gas');
225
- }
226
- },
227
- parseUnits: _viem.parseUnits,
228
- formatUnits: _viem.formatUnits,
229
- getEnsAddress: async value => {
230
- try {
231
- if (!this.wagmiConfig) {
232
- throw new Error('networkControllerClient:getApprovedCaipNetworksData - wagmiConfig is undefined');
233
- }
234
- const chainId = Number(_appkitCommonReactNative.NetworkUtil.caipNetworkIdToNumber(this.getCaipNetwork()?.id));
235
- let ensName = false;
236
- let wcName = false;
237
- if (_appkitCommonReactNative.NamesUtil.isReownName(value)) {
238
- wcName = (await this.resolveReownName(value)) || false;
239
- }
240
- if (chainId === 1) {
241
- ensName = await (0, _core.getEnsAddress)(this.wagmiConfig, {
242
- name: (0, _ens.normalize)(value),
243
- chainId
244
- });
245
- }
246
- return ensName || wcName || false;
247
- } catch {
248
- return false;
249
- }
250
- },
251
- getEnsAvatar: async value => {
252
- const chainId = Number(_appkitCommonReactNative.NetworkUtil.caipNetworkIdToNumber(this.getCaipNetwork()?.id));
253
- if (chainId !== _chains.mainnet.id) {
254
- return false;
255
- }
256
- const avatar = await (0, _core.getEnsAvatar)(this.wagmiConfig, {
257
- name: (0, _ens.normalize)(value),
258
- chainId
259
- });
260
- return avatar || false;
261
- }
262
- };
263
- super({
264
- networkControllerClient,
265
- connectionControllerClient,
266
- siweControllerClient: siweConfig,
267
- defaultChain: (0, _helpers.getCaipDefaultChain)(defaultChain),
268
- tokens: _appkitScaffoldUtilsReactNative.HelpersUtil.getCaipTokens(tokens),
269
- _sdkVersion: _sdkVersion ?? `react-native-wagmi-${_appkitCommonReactNative.ConstantsUtil.VERSION}`,
270
- ...appKitOptions
271
- });
272
- this.options = options;
273
- this.wagmiConfig = wagmiConfig;
274
- this.syncRequestedNetworks([...wagmiConfig.chains]);
275
- this.syncConnectors([...wagmiConfig.connectors]);
276
- (0, _core.watchConnectors)(wagmiConfig, {
277
- onChange: connectors => this.syncConnectors([...connectors])
278
- });
279
- (0, _core.watchAccount)(wagmiConfig, {
280
- onChange: (accountData, prevAccountData) => {
281
- this.syncAccount({
282
- ...accountData
283
- });
284
- if (accountData.status === 'disconnected' && prevAccountData.status === 'connected') {
285
- this.close();
286
- }
287
- }
288
- });
289
- }
290
-
291
- // -- Public ------------------------------------------------------------------
292
-
293
- // @ts-expect-error: Overriden state type is correct
294
- getState() {
295
- const state = super.getState();
296
- return {
297
- ...state,
298
- selectedNetworkId: _appkitCommonReactNative.NetworkUtil.caipNetworkIdToNumber(state.selectedNetworkId)
299
- };
300
- }
301
-
302
- // @ts-expect-error: Overriden state type is correct
303
- subscribeState(callback) {
304
- return super.subscribeState(state => callback({
305
- ...state,
306
- selectedNetworkId: _appkitCommonReactNative.NetworkUtil.caipNetworkIdToNumber(state.selectedNetworkId)
307
- }));
308
- }
309
-
310
- // -- Private -----------------------------------------------------------------
311
- syncRequestedNetworks(chains) {
312
- const requestedCaipNetworks = chains?.map(chain => ({
313
- id: `${_appkitCommonReactNative.ConstantsUtil.EIP155}:${chain.id}`,
314
- name: chain.name,
315
- imageId: _appkitCommonReactNative.PresetsUtil.EIP155NetworkImageIds[chain.id],
316
- imageUrl: this.options?.chainImages?.[chain.id]
317
- }));
318
- this.setRequestedCaipNetworks(requestedCaipNetworks ?? []);
319
- }
320
- async syncAccount({
321
- address,
322
- isConnected,
323
- chainId,
324
- connector,
325
- isConnecting,
326
- isReconnecting
327
- }) {
328
- this.syncNetwork(address, chainId, isConnected);
329
- this.setLoading(!!connector && (isConnecting || isReconnecting));
330
- if (isConnected && address && chainId) {
331
- const caipAddress = `${_appkitCommonReactNative.ConstantsUtil.EIP155}:${chainId}:${address}`;
332
- this.setIsConnected(isConnected);
333
- this.setCaipAddress(caipAddress);
334
- const connectorType = _appkitCommonReactNative.PresetsUtil.ConnectorTypesMap[connector?.id ?? ''];
335
- await Promise.all([this.syncProfile(address, chainId), this.syncBalance(address, chainId), this.syncConnectedWalletInfo(connector), this.getApprovedCaipNetworksData(connectorType)]);
336
- this.hasSyncedConnectedAccount = true;
337
- } else if (!isConnected && !isConnecting && !isReconnecting && this.hasSyncedConnectedAccount) {
338
- this.resetAccount();
339
- this.resetWcConnection();
340
- this.resetNetwork();
341
- }
342
- }
343
- async syncNetwork(address, chainId, isConnected) {
344
- const chain = this.wagmiConfig.chains.find(c => c.id === chainId);
345
- if (chain || chainId) {
346
- const name = chain?.name ?? chainId?.toString();
347
- const id = Number(chain?.id ?? chainId);
348
- const caipChainId = `${_appkitCommonReactNative.ConstantsUtil.EIP155}:${id}`;
349
- this.setCaipNetwork({
350
- id: caipChainId,
351
- name,
352
- imageId: _appkitCommonReactNative.PresetsUtil.EIP155NetworkImageIds[id],
353
- imageUrl: this.options?.chainImages?.[id]
354
- });
355
- if (isConnected && address && chainId) {
356
- const caipAddress = `${_appkitCommonReactNative.ConstantsUtil.EIP155}:${id}:${address}`;
357
- this.setCaipAddress(caipAddress);
358
- if (chain?.blockExplorers?.default?.url) {
359
- const url = `${chain.blockExplorers.default.url}/address/${address}`;
360
- this.setAddressExplorerUrl(url);
361
- } else {
362
- this.setAddressExplorerUrl(undefined);
363
- }
364
- if (this.hasSyncedConnectedAccount) {
365
- await this.syncProfile(address, chainId);
366
- await this.syncBalance(address, chainId);
367
- }
368
- }
369
- }
370
- }
371
- async syncProfile(address, chainId) {
372
- try {
373
- const response = await this.fetchIdentity({
374
- address
375
- });
376
- if (!response) {
377
- throw new Error('Couldnt fetch idendity');
378
- }
379
- this.setProfileName(response.name);
380
- this.setProfileImage(response.avatar);
381
- } catch {
382
- if (chainId === _chains.mainnet.id) {
383
- const profileName = await (0, _core.getEnsName)(this.wagmiConfig, {
384
- address,
385
- chainId
386
- });
387
- if (profileName) {
388
- this.setProfileName(profileName);
389
- const profileImage = await (0, _core.getEnsAvatar)(this.wagmiConfig, {
390
- name: profileName,
391
- chainId
392
- });
393
- if (profileImage) {
394
- this.setProfileImage(profileImage);
395
- }
396
- }
397
- } else {
398
- this.setProfileName(undefined);
399
- this.setProfileImage(undefined);
400
- }
401
- }
402
- }
403
- async syncBalance(address, chainId) {
404
- const chain = this.wagmiConfig.chains.find(c => c.id === chainId);
405
- try {
406
- if (chain) {
407
- const balance = await (0, _core.getBalance)(this.wagmiConfig, {
408
- address,
409
- chainId: chain.id,
410
- token: this.options?.tokens?.[chainId]?.address
411
- });
412
- const formattedBalance = (0, _viem.formatUnits)(balance.value, balance.decimals);
413
- this.setBalance(formattedBalance, balance.symbol);
414
- return;
415
- }
416
- this.setBalance(undefined, undefined);
417
- } catch {
418
- this.setBalance(undefined, undefined);
419
- }
420
- }
421
- async syncConnectedWalletInfo(connector) {
422
- if (!connector) {
423
- throw Error('syncConnectedWalletInfo - connector is undefined');
424
- }
425
- if (connector.id === _appkitCommonReactNative.ConstantsUtil.WALLET_CONNECT_CONNECTOR_ID && connector.getProvider) {
426
- const walletConnectProvider = await connector.getProvider();
427
- if (walletConnectProvider.session) {
428
- this.setConnectedWalletInfo({
429
- ...walletConnectProvider.session.peer.metadata,
430
- name: walletConnectProvider.session.peer.metadata.name,
431
- icon: walletConnectProvider.session.peer.metadata.icons?.[0]
432
- });
433
- }
434
- } else {
435
- this.setConnectedWalletInfo({
436
- id: connector.id,
437
- name: connector.name,
438
- icon: this.options?.connectorImages?.[connector.id] ?? connector.icon
439
- });
440
- }
441
- }
442
- syncConnectors(connectors) {
443
- const uniqueIds = new Set();
444
- const filteredConnectors = connectors.filter(item => !uniqueIds.has(item.id) && uniqueIds.add(item.id));
445
- const excludedConnectors = [_appkitCommonReactNative.ConstantsUtil.AUTH_CONNECTOR_ID];
446
- const _connectors = [];
447
- filteredConnectors.forEach(({
448
- id,
449
- name,
450
- icon
451
- }) => {
452
- if (!excludedConnectors.includes(id)) {
453
- _connectors.push({
454
- id,
455
- explorerId: _appkitCommonReactNative.PresetsUtil.ConnectorExplorerIds[id],
456
- imageId: _appkitCommonReactNative.PresetsUtil.ConnectorImageIds[id] ?? icon,
457
- imageUrl: this.options?.connectorImages?.[id],
458
- name: _appkitCommonReactNative.PresetsUtil.ConnectorNamesMap[id] ?? name,
459
- type: _appkitCommonReactNative.PresetsUtil.ConnectorTypesMap[id] ?? 'EXTERNAL'
460
- });
461
- }
462
- });
463
- this.setConnectors(_connectors);
464
- this.syncWalletConnectListeners(filteredConnectors);
465
- this.syncAuthConnector(filteredConnectors);
466
- }
467
- async syncWalletConnectListeners(connectors) {
468
- const connector = connectors.find(({
469
- id
470
- }) => id === _appkitCommonReactNative.ConstantsUtil.WALLET_CONNECT_CONNECTOR_ID);
471
- if (connector) {
472
- const provider = await connector.getProvider();
473
- provider.signer.client.core.relayer.on('relayer_connect', () => {
474
- provider.signer.client.core.relayer?.provider?.on('payload', payload => {
475
- if (payload?.error) {
476
- this.handleAlertError(payload?.error.message);
477
- }
478
- });
479
- });
480
- }
481
- }
482
- async syncAuthConnector(connectors) {
483
- const authConnector = connectors.find(({
484
- id
485
- }) => id === _appkitCommonReactNative.ConstantsUtil.AUTH_CONNECTOR_ID);
486
- if (authConnector) {
487
- const provider = await authConnector.getProvider();
488
- this.addConnector({
489
- id: _appkitCommonReactNative.ConstantsUtil.AUTH_CONNECTOR_ID,
490
- type: _appkitCommonReactNative.PresetsUtil.ConnectorTypesMap[_appkitCommonReactNative.ConstantsUtil.AUTH_CONNECTOR_ID],
491
- name: _appkitCommonReactNative.PresetsUtil.ConnectorNamesMap[_appkitCommonReactNative.ConstantsUtil.AUTH_CONNECTOR_ID],
492
- provider
493
- });
494
- this.addAuthListeners(authConnector);
495
- }
496
- }
497
- async addAuthListeners(connector) {
498
- const connectedConnector = await _appkitScaffoldUtilsReactNative.StorageUtil.getItem('@w3m/connected_connector');
499
- if (connectedConnector === 'AUTH') {
500
- // Set loader until it reconnects
501
- super.setLoading(true);
502
- }
503
- const provider = await connector.getProvider();
504
- provider.onSetPreferredAccount(async () => {
505
- await (0, _core.reconnect)(this.wagmiConfig, {
506
- connectors: [connector]
507
- });
508
- });
509
- provider.setOnTimeout(async () => {
510
- this.handleAlertError(_appkitCommonReactNative.ErrorUtil.ALERT_ERRORS.SOCIALS_TIMEOUT);
511
- this.setLoading(false);
512
- });
513
- }
514
- }
515
- exports.AppKit = AppKit;
516
- //# sourceMappingURL=client.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["_viem","require","_core","_ens","_chains","_ethereumProvider","_appkitScaffoldReactNative","_appkitScaffoldUtilsReactNative","_appkitCommonReactNative","_appkitSiweReactNative","_helpers","AppKit","AppKitScaffold","hasSyncedConnectedAccount","options","undefined","constructor","wagmiConfig","siweConfig","defaultChain","tokens","_sdkVersion","appKitOptions","Error","projectId","ErrorUtil","ALERT_ERRORS","PROJECT_ID_NOT_CONFIGURED","shortMessage","networkControllerClient","switchCaipNetwork","caipNetwork","chainId","NetworkUtil","caipNetworkIdToNumber","id","switchChain","getApprovedCaipNetworksData","connectorType","walletConnectType","PresetsUtil","ConnectorTypesMap","ConstantsUtil","WALLET_CONNECT_CONNECTOR_ID","authType","AUTH_CONNECTOR_ID","includes","connector","connectors","find","c","getWalletConnectCaipNetworks","getAuthCaipNetworks","approvedCaipNetworkIds","supportsAllNetworks","connectionControllerClient","connectWalletConnect","onUri","walletUniversalLink","provider","getProvider","on","data","clientId","signer","client","core","crypto","getClientId","setClientId","getCaipNetwork","siweParams","getMessageParams","enabled","authenticate","Object","keys","length","setRequestedChainsIds","chains","result","nonce","getNonce","methods","OPTIONAL_METHODS","signedCacao","auths","p","s","cacaoChainId","getDidChainId","iss","address","getDidAddress","message","formatAuthMessage","request","SIWEController","verifyMessage","signature","cacao","session","parseInt","setSession","onSignIn","error","console","disconnect","catch","signOut","state","current","connect","connectExternal","signMessage","signOutOnDisconnect","sendTransaction","getAccount","txParams","account","to","value","gas","gasPrice","type","prepareTransactionRequest","tx","wagmiSendTransaction","waitForTransactionReceipt","hash","timeout","writeContract","caipAddress","getCaipAddress","requireCaipAddress","wagmiWriteContract","tokenAddress","abi","functionName","method","args","receiverAddress","tokenAmount","estimateGas","chainNamespace","wagmiEstimateGas","parseUnits","formatUnits","getEnsAddress","Number","ensName","wcName","NamesUtil","isReownName","resolveReownName","wagmiGetEnsAddress","name","normalize","getEnsAvatar","mainnet","avatar","wagmiGetEnsAvatar","siweControllerClient","getCaipDefaultChain","HelpersUtil","getCaipTokens","VERSION","syncRequestedNetworks","syncConnectors","watchConnectors","onChange","watchAccount","accountData","prevAccountData","syncAccount","status","close","getState","selectedNetworkId","subscribeState","callback","requestedCaipNetworks","map","chain","EIP155","imageId","EIP155NetworkImageIds","imageUrl","chainImages","setRequestedCaipNetworks","isConnected","isConnecting","isReconnecting","syncNetwork","setLoading","setIsConnected","setCaipAddress","Promise","all","syncProfile","syncBalance","syncConnectedWalletInfo","resetAccount","resetWcConnection","resetNetwork","toString","caipChainId","setCaipNetwork","blockExplorers","default","url","setAddressExplorerUrl","response","fetchIdentity","setProfileName","setProfileImage","profileName","getEnsName","profileImage","balance","getBalance","token","formattedBalance","decimals","setBalance","symbol","walletConnectProvider","setConnectedWalletInfo","peer","metadata","icon","icons","connectorImages","uniqueIds","Set","filteredConnectors","filter","item","has","add","excludedConnectors","_connectors","forEach","push","explorerId","ConnectorExplorerIds","ConnectorImageIds","ConnectorNamesMap","setConnectors","syncWalletConnectListeners","syncAuthConnector","relayer","payload","handleAlertError","authConnector","addConnector","addAuthListeners","connectedConnector","StorageUtil","getItem","onSetPreferredAccount","reconnect","setOnTimeout","SOCIALS_TIMEOUT","exports"],"sourceRoot":"../../src","sources":["client.ts"],"mappings":"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"}