@reown/appkit-wagmi-react-native 0.0.0-fix-fetch-error-improvements-20241114124235 → 0.0.0-fix-fetch-error-improvements-20241114124819

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 (31) hide show
  1. package/lib/commonjs/client.js +494 -0
  2. package/lib/commonjs/client.js.map +1 -0
  3. package/lib/commonjs/connectors/WalletConnectConnector.js +353 -0
  4. package/lib/commonjs/connectors/WalletConnectConnector.js.map +1 -0
  5. package/lib/commonjs/index.js +126 -0
  6. package/lib/commonjs/index.js.map +1 -0
  7. package/lib/commonjs/utils/defaultWagmiConfig.js +46 -0
  8. package/lib/commonjs/utils/defaultWagmiConfig.js.map +1 -0
  9. package/lib/commonjs/utils/helpers.js +63 -0
  10. package/lib/commonjs/utils/helpers.js.map +1 -0
  11. package/lib/module/client.js +486 -0
  12. package/lib/module/client.js.map +1 -0
  13. package/lib/module/connectors/WalletConnectConnector.js +348 -0
  14. package/lib/module/connectors/WalletConnectConnector.js.map +1 -0
  15. package/lib/module/index.js +81 -0
  16. package/lib/module/index.js.map +1 -0
  17. package/lib/module/utils/defaultWagmiConfig.js +40 -0
  18. package/lib/module/utils/defaultWagmiConfig.js.map +1 -0
  19. package/lib/module/utils/helpers.js +53 -0
  20. package/lib/module/utils/helpers.js.map +1 -0
  21. package/lib/typescript/client.d.ts +40 -0
  22. package/lib/typescript/client.d.ts.map +1 -0
  23. package/lib/typescript/connectors/WalletConnectConnector.d.ts +74 -0
  24. package/lib/typescript/connectors/WalletConnectConnector.d.ts.map +1 -0
  25. package/lib/typescript/index.d.ts +24 -0
  26. package/lib/typescript/index.d.ts.map +1 -0
  27. package/lib/typescript/utils/defaultWagmiConfig.d.ts +11 -0
  28. package/lib/typescript/utils/defaultWagmiConfig.d.ts.map +1 -0
  29. package/lib/typescript/utils/helpers.d.ts +18 -0
  30. package/lib/typescript/utils/helpers.d.ts.map +1 -0
  31. package/package.json +5 -5
@@ -0,0 +1,486 @@
1
+ import { formatUnits, parseUnits } from 'viem';
2
+ import { connect, reconnect, disconnect, signMessage, getAccount, switchChain, watchAccount, watchConnectors, getEnsName, getEnsAvatar as wagmiGetEnsAvatar, getEnsAddress as wagmiGetEnsAddress, getBalance, prepareTransactionRequest, sendTransaction as wagmiSendTransaction, waitForTransactionReceipt, writeContract as wagmiWriteContract } from '@wagmi/core';
3
+ import { normalize } from 'viem/ens';
4
+ import { mainnet } from '@wagmi/core/chains';
5
+ import { OPTIONAL_METHODS } from '@walletconnect/ethereum-provider';
6
+ import { AppKitScaffold } from '@reown/appkit-scaffold-react-native';
7
+ import { ConstantsUtil, HelpersUtil, PresetsUtil, StorageUtil } from '@reown/appkit-scaffold-utils-react-native';
8
+ import { NetworkUtil, NamesUtil, ErrorUtil } from '@reown/appkit-common-react-native';
9
+ import { getCaipDefaultChain, getAuthCaipNetworks, getWalletConnectCaipNetworks, requireCaipAddress } from './utils/helpers';
10
+
11
+ // -- Types ---------------------------------------------------------------------
12
+
13
+ // @ts-expect-error: Overriden state type is correct
14
+
15
+ // -- Client --------------------------------------------------------------------
16
+ export class AppKit extends AppKitScaffold {
17
+ hasSyncedConnectedAccount = false;
18
+ options = undefined;
19
+ constructor(options) {
20
+ const {
21
+ wagmiConfig,
22
+ siweConfig,
23
+ defaultChain,
24
+ tokens,
25
+ _sdkVersion,
26
+ ...appKitOptions
27
+ } = options;
28
+ if (!wagmiConfig) {
29
+ throw new Error('appkit:constructor - wagmiConfig is undefined');
30
+ }
31
+ if (!appKitOptions.projectId) {
32
+ throw new Error(ErrorUtil.ALERT_ERRORS.PROJECT_ID_NOT_CONFIGURED.shortMessage);
33
+ }
34
+ const networkControllerClient = {
35
+ switchCaipNetwork: async caipNetwork => {
36
+ const chainId = NetworkUtil.caipNetworkIdToNumber(caipNetwork?.id);
37
+ if (chainId) {
38
+ await switchChain(wagmiConfig, {
39
+ chainId
40
+ });
41
+ }
42
+ },
43
+ async getApprovedCaipNetworksData() {
44
+ const walletChoice = await StorageUtil.getConnectedConnector();
45
+ const walletConnectType = PresetsUtil.ConnectorTypesMap[ConstantsUtil.WALLET_CONNECT_CONNECTOR_ID];
46
+ const authType = PresetsUtil.ConnectorTypesMap[ConstantsUtil.AUTH_CONNECTOR_ID];
47
+ if (walletChoice?.includes(walletConnectType)) {
48
+ const connector = wagmiConfig.connectors.find(c => c.id === ConstantsUtil.WALLET_CONNECT_CONNECTOR_ID);
49
+ return getWalletConnectCaipNetworks(connector);
50
+ } else if (authType) {
51
+ return getAuthCaipNetworks();
52
+ }
53
+ return {
54
+ approvedCaipNetworkIds: undefined,
55
+ supportsAllNetworks: true
56
+ };
57
+ }
58
+ };
59
+ const connectionControllerClient = {
60
+ connectWalletConnect: async (onUri, walletUniversalLink) => {
61
+ const connector = wagmiConfig.connectors.find(c => c.id === ConstantsUtil.WALLET_CONNECT_CONNECTOR_ID);
62
+ if (!connector) {
63
+ throw new Error('connectionControllerClient:getWalletConnectUri - connector is undefined');
64
+ }
65
+ const provider = await connector.getProvider();
66
+ provider.on('display_uri', data => {
67
+ onUri(data);
68
+ });
69
+
70
+ // When connecting through walletconnect, we need to set the clientId in the store
71
+ const clientId = await provider.signer?.client?.core?.crypto?.getClientId();
72
+ if (clientId) {
73
+ this.setClientId(clientId);
74
+ }
75
+ const chainId = NetworkUtil.caipNetworkIdToNumber(this.getCaipNetwork()?.id);
76
+
77
+ // SIWE
78
+ const siweParams = await siweConfig?.getMessageParams?.();
79
+ // Make sure client uses ethereum provider version that supports `authenticate`
80
+ if (siweConfig?.options?.enabled && typeof provider?.authenticate === 'function' && siweParams && Object.keys(siweParams || {}).length > 0) {
81
+ const {
82
+ SIWEController,
83
+ getDidChainId,
84
+ getDidAddress
85
+ } = await import('@reown/appkit-siwe-react-native');
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: [...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 = getDidChainId(p.iss) || '';
102
+ const address = 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 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
+ SIWEController.setSession(session);
120
+ 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 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 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 = NetworkUtil.caipNetworkIdToNumber(this.getCaipNetwork()?.id);
155
+ await connect(this.wagmiConfig, {
156
+ connector,
157
+ chainId
158
+ });
159
+ },
160
+ signMessage: async message => signMessage(this.wagmiConfig, {
161
+ message
162
+ }),
163
+ disconnect: async () => {
164
+ await disconnect(this.wagmiConfig);
165
+ this.setClientId(null);
166
+ if (siweConfig?.options?.signOutOnDisconnect) {
167
+ const {
168
+ SIWEController
169
+ } = await import('@reown/appkit-siwe-react-native');
170
+ await SIWEController.signOut();
171
+ }
172
+ },
173
+ sendTransaction: async data => {
174
+ const {
175
+ chainId
176
+ } = getAccount(this.wagmiConfig);
177
+ const txParams = {
178
+ account: data.address,
179
+ to: data.to,
180
+ value: data.value,
181
+ gas: data.gas,
182
+ gasPrice: data.gasPrice,
183
+ data: data.data,
184
+ chainId,
185
+ type: 'legacy'
186
+ };
187
+ await prepareTransactionRequest(this.wagmiConfig, txParams);
188
+ const tx = await wagmiSendTransaction(this.wagmiConfig, txParams);
189
+ await waitForTransactionReceipt(this.wagmiConfig, {
190
+ hash: tx,
191
+ timeout: 25000
192
+ });
193
+ return tx;
194
+ },
195
+ writeContract: async data => {
196
+ const caipAddress = this.getCaipAddress() || '';
197
+ const account = requireCaipAddress(caipAddress);
198
+ const chainId = NetworkUtil.caipNetworkIdToNumber(this.getCaipNetwork()?.id);
199
+ const tx = await wagmiWriteContract(wagmiConfig, {
200
+ chainId,
201
+ address: data.tokenAddress,
202
+ account,
203
+ abi: data.abi,
204
+ functionName: data.method,
205
+ args: [data.receiverAddress, data.tokenAmount]
206
+ });
207
+ return tx;
208
+ },
209
+ parseUnits,
210
+ formatUnits,
211
+ getEnsAddress: async value => {
212
+ try {
213
+ if (!this.wagmiConfig) {
214
+ throw new Error('networkControllerClient:getApprovedCaipNetworksData - wagmiConfig is undefined');
215
+ }
216
+ const chainId = Number(NetworkUtil.caipNetworkIdToNumber(this.getCaipNetwork()?.id));
217
+ let ensName = false;
218
+ let wcName = false;
219
+ if (NamesUtil.isReownName(value)) {
220
+ wcName = (await this.resolveReownName(value)) || false;
221
+ }
222
+ if (chainId === 1) {
223
+ ensName = await wagmiGetEnsAddress(this.wagmiConfig, {
224
+ name: normalize(value),
225
+ chainId
226
+ });
227
+ }
228
+ return ensName || wcName || false;
229
+ } catch {
230
+ return false;
231
+ }
232
+ },
233
+ getEnsAvatar: async value => {
234
+ const chainId = Number(NetworkUtil.caipNetworkIdToNumber(this.getCaipNetwork()?.id));
235
+ if (chainId !== mainnet.id) {
236
+ return false;
237
+ }
238
+ const avatar = await wagmiGetEnsAvatar(this.wagmiConfig, {
239
+ name: normalize(value),
240
+ chainId
241
+ });
242
+ return avatar || false;
243
+ }
244
+ };
245
+ super({
246
+ networkControllerClient,
247
+ connectionControllerClient,
248
+ siweControllerClient: siweConfig,
249
+ defaultChain: getCaipDefaultChain(defaultChain),
250
+ tokens: HelpersUtil.getCaipTokens(tokens),
251
+ _sdkVersion: _sdkVersion ?? `react-native-wagmi-${ConstantsUtil.VERSION}`,
252
+ ...appKitOptions
253
+ });
254
+ this.options = options;
255
+ this.wagmiConfig = wagmiConfig;
256
+ this.syncRequestedNetworks([...wagmiConfig.chains]);
257
+ this.syncConnectors([...wagmiConfig.connectors]);
258
+ watchConnectors(wagmiConfig, {
259
+ onChange: connectors => this.syncConnectors([...connectors])
260
+ });
261
+ watchAccount(wagmiConfig, {
262
+ onChange: accountData => {
263
+ this.syncAccount({
264
+ ...accountData
265
+ });
266
+ }
267
+ });
268
+ }
269
+
270
+ // -- Public ------------------------------------------------------------------
271
+
272
+ // @ts-expect-error: Overriden state type is correct
273
+ getState() {
274
+ const state = super.getState();
275
+ return {
276
+ ...state,
277
+ selectedNetworkId: NetworkUtil.caipNetworkIdToNumber(state.selectedNetworkId)
278
+ };
279
+ }
280
+
281
+ // @ts-expect-error: Overriden state type is correct
282
+ subscribeState(callback) {
283
+ return super.subscribeState(state => callback({
284
+ ...state,
285
+ selectedNetworkId: NetworkUtil.caipNetworkIdToNumber(state.selectedNetworkId)
286
+ }));
287
+ }
288
+
289
+ // -- Private -----------------------------------------------------------------
290
+ syncRequestedNetworks(chains) {
291
+ const requestedCaipNetworks = chains?.map(chain => ({
292
+ id: `${ConstantsUtil.EIP155}:${chain.id}`,
293
+ name: chain.name,
294
+ imageId: PresetsUtil.EIP155NetworkImageIds[chain.id],
295
+ imageUrl: this.options?.chainImages?.[chain.id]
296
+ }));
297
+ this.setRequestedCaipNetworks(requestedCaipNetworks ?? []);
298
+ }
299
+ async syncAccount({
300
+ address,
301
+ isConnected,
302
+ chainId,
303
+ connector,
304
+ isConnecting,
305
+ isReconnecting
306
+ }) {
307
+ this.syncNetwork(address, chainId, isConnected);
308
+ this.setLoading(!!connector && (isConnecting || isReconnecting));
309
+ if (isConnected && address && chainId) {
310
+ const caipAddress = `${ConstantsUtil.EIP155}:${chainId}:${address}`;
311
+ this.setIsConnected(isConnected);
312
+ this.setCaipAddress(caipAddress);
313
+ await Promise.all([this.syncProfile(address, chainId), this.syncBalance(address, chainId), this.syncConnectedWalletInfo(connector), this.getApprovedCaipNetworksData()]);
314
+ this.hasSyncedConnectedAccount = true;
315
+ } else if (!isConnected && this.hasSyncedConnectedAccount) {
316
+ this.resetAccount();
317
+ this.resetWcConnection();
318
+ this.resetNetwork();
319
+ }
320
+ }
321
+ async syncNetwork(address, chainId, isConnected) {
322
+ const chain = this.wagmiConfig.chains.find(c => c.id === chainId);
323
+ if (chain || chainId) {
324
+ const name = chain?.name ?? chainId?.toString();
325
+ const id = Number(chain?.id ?? chainId);
326
+ const caipChainId = `${ConstantsUtil.EIP155}:${id}`;
327
+ this.setCaipNetwork({
328
+ id: caipChainId,
329
+ name,
330
+ imageId: PresetsUtil.EIP155NetworkImageIds[id],
331
+ imageUrl: this.options?.chainImages?.[id]
332
+ });
333
+ if (isConnected && address && chainId) {
334
+ const caipAddress = `${ConstantsUtil.EIP155}:${id}:${address}`;
335
+ this.setCaipAddress(caipAddress);
336
+ if (chain?.blockExplorers?.default?.url) {
337
+ const url = `${chain.blockExplorers.default.url}/address/${address}`;
338
+ this.setAddressExplorerUrl(url);
339
+ } else {
340
+ this.setAddressExplorerUrl(undefined);
341
+ }
342
+ if (this.hasSyncedConnectedAccount) {
343
+ await this.syncProfile(address, chainId);
344
+ await this.syncBalance(address, chainId);
345
+ }
346
+ }
347
+ }
348
+ }
349
+ async syncProfile(address, chainId) {
350
+ try {
351
+ const response = await this.fetchIdentity({
352
+ address
353
+ });
354
+ if (!response) {
355
+ throw new Error('Couldnt fetch idendity');
356
+ }
357
+ this.setProfileName(response.name);
358
+ this.setProfileImage(response.avatar);
359
+ } catch {
360
+ if (chainId === mainnet.id) {
361
+ const profileName = await getEnsName(this.wagmiConfig, {
362
+ address,
363
+ chainId
364
+ });
365
+ if (profileName) {
366
+ this.setProfileName(profileName);
367
+ const profileImage = await wagmiGetEnsAvatar(this.wagmiConfig, {
368
+ name: profileName,
369
+ chainId
370
+ });
371
+ if (profileImage) {
372
+ this.setProfileImage(profileImage);
373
+ }
374
+ }
375
+ } else {
376
+ this.setProfileName(undefined);
377
+ this.setProfileImage(undefined);
378
+ }
379
+ }
380
+ }
381
+ async syncBalance(address, chainId) {
382
+ const chain = this.wagmiConfig.chains.find(c => c.id === chainId);
383
+ if (chain) {
384
+ const balance = await getBalance(this.wagmiConfig, {
385
+ address,
386
+ chainId: chain.id,
387
+ token: this.options?.tokens?.[chainId]?.address
388
+ });
389
+ const formattedBalance = formatUnits(balance.value, balance.decimals);
390
+ this.setBalance(formattedBalance, balance.symbol);
391
+ return;
392
+ }
393
+ this.setBalance(undefined, undefined);
394
+ }
395
+ async syncConnectedWalletInfo(connector) {
396
+ if (!connector) {
397
+ throw Error('syncConnectedWalletInfo - connector is undefined');
398
+ }
399
+ if (connector.id === ConstantsUtil.WALLET_CONNECT_CONNECTOR_ID && connector.getProvider) {
400
+ const walletConnectProvider = await connector.getProvider();
401
+ if (walletConnectProvider.session) {
402
+ this.setConnectedWalletInfo({
403
+ ...walletConnectProvider.session.peer.metadata,
404
+ name: walletConnectProvider.session.peer.metadata.name,
405
+ icon: walletConnectProvider.session.peer.metadata.icons?.[0]
406
+ });
407
+ }
408
+ } else {
409
+ this.setConnectedWalletInfo({
410
+ name: connector.name,
411
+ icon: connector.icon
412
+ });
413
+ }
414
+ }
415
+ syncConnectors(connectors) {
416
+ const uniqueIds = new Set();
417
+ const filteredConnectors = connectors.filter(item => !uniqueIds.has(item.id) && uniqueIds.add(item.id));
418
+ const excludedConnectors = [ConstantsUtil.AUTH_CONNECTOR_ID];
419
+ const _connectors = [];
420
+ filteredConnectors.forEach(({
421
+ id,
422
+ name,
423
+ icon
424
+ }) => {
425
+ if (!excludedConnectors.includes(id)) {
426
+ _connectors.push({
427
+ id,
428
+ explorerId: PresetsUtil.ConnectorExplorerIds[id],
429
+ imageId: PresetsUtil.ConnectorImageIds[id] ?? icon,
430
+ imageUrl: this.options?.connectorImages?.[id],
431
+ name: PresetsUtil.ConnectorNamesMap[id] ?? name,
432
+ type: PresetsUtil.ConnectorTypesMap[id] ?? 'EXTERNAL'
433
+ });
434
+ }
435
+ });
436
+ this.setConnectors(_connectors);
437
+ this.syncWalletConnectListeners(filteredConnectors);
438
+ this.syncAuthConnector(filteredConnectors);
439
+ }
440
+ async syncWalletConnectListeners(connectors) {
441
+ const connector = connectors.find(({
442
+ id
443
+ }) => id === ConstantsUtil.WALLET_CONNECT_CONNECTOR_ID);
444
+ if (connector) {
445
+ const provider = await connector.getProvider();
446
+ provider.signer.client.core.relayer.provider.on('payload', payload => {
447
+ if (payload?.error) {
448
+ this.handleAlertError(payload?.error.message);
449
+ }
450
+ });
451
+ }
452
+ }
453
+ async syncAuthConnector(connectors) {
454
+ const authConnector = connectors.find(({
455
+ id
456
+ }) => id === ConstantsUtil.AUTH_CONNECTOR_ID);
457
+ if (authConnector) {
458
+ const provider = await authConnector.getProvider();
459
+ this.addConnector({
460
+ id: ConstantsUtil.AUTH_CONNECTOR_ID,
461
+ type: 'AUTH',
462
+ name: 'Auth',
463
+ provider
464
+ });
465
+ this.addAuthListeners(authConnector);
466
+ }
467
+ }
468
+ async addAuthListeners(connector) {
469
+ const connectedConnector = await StorageUtil.getItem('@w3m/connected_connector');
470
+ if (connectedConnector === 'AUTH') {
471
+ // Set loader until it reconnects
472
+ super.setLoading(true);
473
+ }
474
+ const provider = await connector.getProvider();
475
+ provider.onSetPreferredAccount(async () => {
476
+ await reconnect(this.wagmiConfig, {
477
+ connectors: [connector]
478
+ });
479
+ this.setLoading(false);
480
+ });
481
+ provider.setOnTimeout(async () => {
482
+ this.handleAlertError(ErrorUtil.ALERT_ERRORS.SOCIALS_TIMEOUT);
483
+ });
484
+ }
485
+ }
486
+ //# sourceMappingURL=client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["formatUnits","parseUnits","connect","reconnect","disconnect","signMessage","getAccount","switchChain","watchAccount","watchConnectors","getEnsName","getEnsAvatar","wagmiGetEnsAvatar","getEnsAddress","wagmiGetEnsAddress","getBalance","prepareTransactionRequest","sendTransaction","wagmiSendTransaction","waitForTransactionReceipt","writeContract","wagmiWriteContract","normalize","mainnet","OPTIONAL_METHODS","AppKitScaffold","ConstantsUtil","HelpersUtil","PresetsUtil","StorageUtil","NetworkUtil","NamesUtil","ErrorUtil","getCaipDefaultChain","getAuthCaipNetworks","getWalletConnectCaipNetworks","requireCaipAddress","AppKit","hasSyncedConnectedAccount","options","undefined","constructor","wagmiConfig","siweConfig","defaultChain","tokens","_sdkVersion","appKitOptions","Error","projectId","ALERT_ERRORS","PROJECT_ID_NOT_CONFIGURED","shortMessage","networkControllerClient","switchCaipNetwork","caipNetwork","chainId","caipNetworkIdToNumber","id","getApprovedCaipNetworksData","walletChoice","getConnectedConnector","walletConnectType","ConnectorTypesMap","WALLET_CONNECT_CONNECTOR_ID","authType","AUTH_CONNECTOR_ID","includes","connector","connectors","find","c","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","SIWEController","getDidChainId","getDidAddress","setRequestedChainsIds","chains","result","nonce","getNonce","methods","signedCacao","auths","p","s","cacaoChainId","iss","address","message","formatAuthMessage","request","verifyMessage","signature","cacao","session","parseInt","setSession","onSignIn","error","console","catch","signOut","state","current","connectExternal","signOutOnDisconnect","txParams","account","to","value","gas","gasPrice","type","tx","hash","timeout","caipAddress","getCaipAddress","tokenAddress","abi","functionName","method","args","receiverAddress","tokenAmount","Number","ensName","wcName","isReownName","resolveReownName","name","avatar","siweControllerClient","getCaipTokens","VERSION","syncRequestedNetworks","syncConnectors","onChange","accountData","syncAccount","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","profileImage","balance","token","formattedBalance","decimals","setBalance","symbol","walletConnectProvider","setConnectedWalletInfo","peer","metadata","icon","icons","uniqueIds","Set","filteredConnectors","filter","item","has","add","excludedConnectors","_connectors","forEach","push","explorerId","ConnectorExplorerIds","ConnectorImageIds","connectorImages","ConnectorNamesMap","setConnectors","syncWalletConnectListeners","syncAuthConnector","relayer","payload","handleAlertError","authConnector","addConnector","addAuthListeners","connectedConnector","getItem","onSetPreferredAccount","setOnTimeout","SOCIALS_TIMEOUT"],"sourceRoot":"../../src","sources":["client.ts"],"mappings":"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"}