@reown/appkit-wagmi-react-native 0.0.0-fix-token-balance-20241017200828 → 0.0.0-fix-fetch-error-improvements-20241114124235

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