@reown/appkit 1.6.9 → 1.7.0-rc.0

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 (136) hide show
  1. package/dist/esm/exports/basic-react.js +39 -0
  2. package/dist/esm/exports/basic-react.js.map +1 -0
  3. package/dist/esm/exports/basic-vue.js +45 -0
  4. package/dist/esm/exports/basic-vue.js.map +1 -0
  5. package/dist/esm/exports/basic.js +11 -0
  6. package/dist/esm/exports/basic.js.map +1 -0
  7. package/dist/esm/exports/constants.js +1 -1
  8. package/dist/esm/exports/constants.js.map +1 -1
  9. package/dist/esm/exports/index.js +3 -5
  10. package/dist/esm/exports/index.js.map +1 -1
  11. package/dist/esm/exports/react-basic.js +39 -0
  12. package/dist/esm/exports/react-basic.js.map +1 -0
  13. package/dist/esm/exports/react.js +5 -7
  14. package/dist/esm/exports/react.js.map +1 -1
  15. package/dist/esm/exports/vue copy.js +44 -0
  16. package/dist/esm/exports/vue copy.js.map +1 -0
  17. package/dist/esm/exports/vue-basic.js +45 -0
  18. package/dist/esm/exports/vue-basic.js.map +1 -0
  19. package/dist/esm/exports/vue.js +3 -5
  20. package/dist/esm/exports/vue.js.map +1 -1
  21. package/dist/esm/package.json +36 -10
  22. package/dist/esm/src/adapters/ChainAdapterBlueprint.js +1 -2
  23. package/dist/esm/src/adapters/ChainAdapterBlueprint.js.map +1 -1
  24. package/dist/esm/src/client/appkit-basic.js +39 -0
  25. package/dist/esm/src/client/appkit-basic.js.map +1 -0
  26. package/dist/esm/src/client/appkit.js +389 -0
  27. package/dist/esm/src/client/appkit.js.map +1 -0
  28. package/dist/esm/src/client/core.js +1390 -0
  29. package/dist/esm/src/client/core.js.map +1 -0
  30. package/dist/esm/src/client.js +34 -27
  31. package/dist/esm/src/client.js.map +1 -1
  32. package/dist/esm/src/connectors/WalletConnectConnector.js +1 -1
  33. package/dist/esm/src/connectors/WalletConnectConnector.js.map +1 -1
  34. package/dist/esm/src/library/react/index.js +1 -1
  35. package/dist/esm/src/library/react/index.js.map +1 -1
  36. package/dist/esm/src/library/vue/index.js +2 -2
  37. package/dist/esm/src/library/vue/index.js.map +1 -1
  38. package/dist/esm/src/store/ProviderUtil.js +3 -0
  39. package/dist/esm/src/store/ProviderUtil.js.map +1 -1
  40. package/dist/esm/src/universal-adapter/client.js +1 -1
  41. package/dist/esm/src/universal-adapter/client.js.map +1 -1
  42. package/dist/esm/src/utils/HelpersUtil.js +1 -1
  43. package/dist/esm/src/utils/HelpersUtil.js.map +1 -1
  44. package/dist/esm/tests/client/adapter-management.test.js +85 -0
  45. package/dist/esm/tests/client/adapter-management.test.js.map +1 -0
  46. package/dist/esm/tests/client/appkit-basic.test.js +69 -0
  47. package/dist/esm/tests/client/appkit-basic.test.js.map +1 -0
  48. package/dist/esm/tests/client/balance.test.js +56 -0
  49. package/dist/esm/tests/client/balance.test.js.map +1 -0
  50. package/dist/esm/tests/client/connection.test.js +140 -0
  51. package/dist/esm/tests/client/connection.test.js.map +1 -0
  52. package/dist/esm/tests/client/initialization.test.js +121 -0
  53. package/dist/esm/tests/client/initialization.test.js.map +1 -0
  54. package/dist/esm/tests/client/listeners.test.js +87 -0
  55. package/dist/esm/tests/client/listeners.test.js.map +1 -0
  56. package/dist/esm/tests/client/public-methods.test.js +768 -0
  57. package/dist/esm/tests/client/public-methods.test.js.map +1 -0
  58. package/dist/esm/tests/client/universal-adapter.test.js +46 -0
  59. package/dist/esm/tests/client/universal-adapter.test.js.map +1 -0
  60. package/dist/esm/tests/client/walletconnect-events.test.js +82 -0
  61. package/dist/esm/tests/client/walletconnect-events.test.js.map +1 -0
  62. package/dist/esm/tests/connectors/WalletConnectConnector.test.js +63 -0
  63. package/dist/esm/tests/connectors/WalletConnectConnector.test.js.map +1 -0
  64. package/dist/esm/tests/mocks/Account.js +13 -0
  65. package/dist/esm/tests/mocks/Account.js.map +1 -0
  66. package/dist/esm/tests/mocks/Adapter.js +98 -0
  67. package/dist/esm/tests/mocks/Adapter.js.map +1 -0
  68. package/dist/esm/tests/mocks/AppKit.js +24 -0
  69. package/dist/esm/tests/mocks/AppKit.js.map +1 -0
  70. package/dist/esm/tests/mocks/LocalStorage.js +37 -0
  71. package/dist/esm/tests/mocks/LocalStorage.js.map +1 -0
  72. package/dist/esm/tests/mocks/Networks.js +17 -0
  73. package/dist/esm/tests/mocks/Networks.js.map +1 -0
  74. package/dist/esm/tests/mocks/Options.js +17 -0
  75. package/dist/esm/tests/mocks/Options.js.map +1 -0
  76. package/dist/esm/tests/mocks/Providers.js +46 -0
  77. package/dist/esm/tests/mocks/Providers.js.map +1 -0
  78. package/dist/esm/tests/mocks/UniversalProvider.js +139 -0
  79. package/dist/esm/tests/mocks/UniversalProvider.js.map +1 -0
  80. package/dist/esm/tests/siwe.test.js +261 -0
  81. package/dist/esm/tests/siwe.test.js.map +1 -0
  82. package/dist/esm/tests/test-utils.js +46 -0
  83. package/dist/esm/tests/test-utils.js.map +1 -0
  84. package/dist/esm/tests/universal-adapter.test.js +246 -0
  85. package/dist/esm/tests/universal-adapter.test.js.map +1 -0
  86. package/dist/esm/tests/utils/HelpersUtil.test.js +229 -0
  87. package/dist/esm/tests/utils/HelpersUtil.test.js.map +1 -0
  88. package/dist/esm/tsconfig.build.tsbuildinfo +1 -1
  89. package/dist/esm/tsconfig.tsbuildinfo +1 -0
  90. package/dist/types/exports/basic-react.d.ts +16 -0
  91. package/dist/types/exports/basic-vue.d.ts +15 -0
  92. package/dist/types/exports/basic.d.ts +8 -0
  93. package/dist/types/exports/constants.d.ts +1 -1
  94. package/dist/types/exports/index.d.ts +4 -5
  95. package/dist/types/exports/react-basic.d.ts +16 -0
  96. package/dist/types/exports/react.d.ts +6 -7
  97. package/dist/types/exports/vue copy.d.ts +15 -0
  98. package/dist/types/exports/vue-basic.d.ts +15 -0
  99. package/dist/types/exports/vue.d.ts +5 -6
  100. package/dist/types/src/adapters/ChainAdapterBlueprint.d.ts +6 -6
  101. package/dist/types/src/adapters/ChainAdapterConnector.d.ts +1 -1
  102. package/dist/types/src/client/appkit-basic.d.ts +24 -0
  103. package/dist/types/src/client/appkit.d.ts +23 -0
  104. package/dist/types/src/client/core.d.ts +224 -0
  105. package/dist/types/src/client.d.ts +24 -28
  106. package/dist/types/src/library/react/index.d.ts +9 -9
  107. package/dist/types/src/library/vue/index.d.ts +7 -7
  108. package/dist/types/src/networks/bitcoin.d.ts +2 -2
  109. package/dist/types/src/networks/solana/solana.d.ts +1 -1
  110. package/dist/types/src/networks/solana/solanaDevnet.d.ts +1 -1
  111. package/dist/types/src/networks/solana/solanaTestnet.d.ts +1 -1
  112. package/dist/types/src/store/ProviderUtil.d.ts +2 -2
  113. package/dist/types/src/utils/TypesUtil.d.ts +6 -1
  114. package/dist/types/tests/client/adapter-management.test.d.ts +1 -0
  115. package/dist/types/tests/client/appkit-basic.test.d.ts +1 -0
  116. package/dist/types/tests/client/balance.test.d.ts +1 -0
  117. package/dist/types/tests/client/connection.test.d.ts +1 -0
  118. package/dist/types/tests/client/initialization.test.d.ts +1 -0
  119. package/dist/types/tests/client/listeners.test.d.ts +1 -0
  120. package/dist/types/tests/client/public-methods.test.d.ts +1 -0
  121. package/dist/types/tests/client/universal-adapter.test.d.ts +1 -0
  122. package/dist/types/tests/client/walletconnect-events.test.d.ts +1 -0
  123. package/dist/types/tests/connectors/WalletConnectConnector.test.d.ts +1 -0
  124. package/dist/types/tests/mocks/Account.d.ts +12 -0
  125. package/dist/types/tests/mocks/Adapter.d.ts +8 -0
  126. package/dist/types/tests/mocks/AppKit.d.ts +3 -0
  127. package/dist/types/tests/mocks/LocalStorage.d.ts +12 -0
  128. package/dist/types/tests/mocks/Networks.d.ts +4 -0
  129. package/dist/types/tests/mocks/Options.d.ts +6 -0
  130. package/dist/types/tests/mocks/Providers.d.ts +42 -0
  131. package/dist/types/tests/mocks/UniversalProvider.d.ts +3 -0
  132. package/dist/types/tests/siwe.test.d.ts +1 -0
  133. package/dist/types/tests/test-utils.d.ts +5 -0
  134. package/dist/types/tests/universal-adapter.test.d.ts +1 -0
  135. package/dist/types/tests/utils/HelpersUtil.test.d.ts +1 -0
  136. package/package.json +42 -16
@@ -0,0 +1,389 @@
1
+ /* eslint-disable max-depth */
2
+ import { ConstantsUtil, getW3mThemeVariables } from '@reown/appkit-common';
3
+ import { ApiController, ConnectionController, ConnectorController, ConstantsUtil as CoreConstantsUtil, EventsController } from '@reown/appkit-controllers';
4
+ import { AccountController, AlertController, ChainController, CoreHelperUtil, OptionsController, StorageUtil, ThemeController } from '@reown/appkit-controllers';
5
+ import { ErrorUtil, HelpersUtil, ConstantsUtil as UtilConstantsUtil } from '@reown/appkit-utils';
6
+ import { W3mFrameHelpers, W3mFrameProvider } from '@reown/appkit-wallet';
7
+ import { W3mFrameRpcConstants } from '@reown/appkit-wallet/utils';
8
+ import { W3mFrameProviderSingleton } from '../auth-provider/W3MFrameProviderSingleton.js';
9
+ import { ProviderUtil } from '../store/ProviderUtil.js';
10
+ import { AppKitCore } from './core.js';
11
+ // -- Export Controllers -------------------------------------------------------
12
+ export { AccountController };
13
+ // -- Helpers -------------------------------------------------------------------
14
+ let isInitialized = false;
15
+ // -- Client --------------------------------------------------------------------
16
+ export class AppKit extends AppKitCore {
17
+ // -- Private ------------------------------------------------------------------
18
+ setupAuthConnectorListeners(provider) {
19
+ provider.onRpcRequest((request) => {
20
+ if (W3mFrameHelpers.checkIfRequestExists(request)) {
21
+ if (!W3mFrameHelpers.checkIfRequestIsSafe(request)) {
22
+ this.handleUnsafeRPCRequest();
23
+ }
24
+ }
25
+ else {
26
+ this.open();
27
+ // eslint-disable-next-line no-console
28
+ console.error(W3mFrameRpcConstants.RPC_METHOD_NOT_ALLOWED_MESSAGE, {
29
+ method: request.method
30
+ });
31
+ setTimeout(() => {
32
+ this.showErrorMessage(W3mFrameRpcConstants.RPC_METHOD_NOT_ALLOWED_UI_MESSAGE);
33
+ }, 300);
34
+ provider.rejectRpcRequests();
35
+ }
36
+ });
37
+ provider.onRpcError(() => {
38
+ const isModalOpen = this.isOpen();
39
+ if (isModalOpen) {
40
+ if (this.isTransactionStackEmpty()) {
41
+ this.close();
42
+ }
43
+ else {
44
+ this.popTransactionStack(true);
45
+ }
46
+ }
47
+ });
48
+ provider.onRpcSuccess((_, request) => {
49
+ const isSafeRequest = W3mFrameHelpers.checkIfRequestIsSafe(request);
50
+ const address = AccountController.state.address;
51
+ const caipNetwork = ChainController.state.activeCaipNetwork;
52
+ if (isSafeRequest) {
53
+ return;
54
+ }
55
+ if (this.isTransactionStackEmpty()) {
56
+ this.close();
57
+ if (address && caipNetwork?.id) {
58
+ this.updateNativeBalance(address, caipNetwork.id, caipNetwork.chainNamespace);
59
+ }
60
+ }
61
+ else {
62
+ this.popTransactionStack();
63
+ if (address && caipNetwork?.id) {
64
+ this.updateNativeBalance(address, caipNetwork.id, caipNetwork.chainNamespace);
65
+ }
66
+ }
67
+ });
68
+ provider.onNotConnected(() => {
69
+ const namespace = ChainController.state.activeChain;
70
+ const connectorId = ConnectorController.getConnectorId(namespace);
71
+ const isConnectedWithAuth = connectorId === ConstantsUtil.CONNECTOR_ID.AUTH;
72
+ if (isConnectedWithAuth) {
73
+ this.setCaipAddress(undefined, namespace);
74
+ this.setLoading(false, namespace);
75
+ }
76
+ });
77
+ provider.onConnect(async (user) => {
78
+ const namespace = ChainController.state.activeChain;
79
+ // To keep backwards compatibility, eip155 chainIds are numbers and not actual caipChainIds
80
+ const caipAddress = namespace === ConstantsUtil.CHAIN.EVM
81
+ ? `eip155:${user.chainId}:${user.address}`
82
+ : `${user.chainId}:${user.address}`;
83
+ this.setSmartAccountDeployed(Boolean(user.smartAccountDeployed), namespace);
84
+ /*
85
+ * This covers the case where user switches back from a smart account supported
86
+ * network to a non-smart account supported network resulting in a different address
87
+ */
88
+ this.setCaipAddress(caipAddress, namespace);
89
+ if (!HelpersUtil.isLowerCaseMatch(user.address, AccountController.state.address)) {
90
+ this.syncIdentity({
91
+ address: user.address,
92
+ chainId: user.chainId,
93
+ chainNamespace: namespace
94
+ });
95
+ }
96
+ this.setUser({ ...(AccountController.state.user || {}), email: user.email }, namespace);
97
+ const preferredAccountType = (user.preferredAccountType ||
98
+ OptionsController.state.defaultAccountTypes[namespace]);
99
+ this.setPreferredAccountType(preferredAccountType, namespace);
100
+ const userAccounts = user.accounts?.map(account => CoreHelperUtil.createAccount(namespace, account.address, account.type || OptionsController.state.defaultAccountTypes[namespace]));
101
+ this.setAllAccounts(userAccounts || [
102
+ CoreHelperUtil.createAccount(namespace, user.address, preferredAccountType)
103
+ ], namespace);
104
+ await provider.getSmartAccountEnabledNetworks();
105
+ this.setLoading(false, namespace);
106
+ });
107
+ provider.onSocialConnected(({ userName }) => {
108
+ this.setUser({ ...(AccountController.state.user || {}), username: userName }, ChainController.state.activeChain);
109
+ });
110
+ provider.onGetSmartAccountEnabledNetworks(networks => {
111
+ this.setSmartAccountEnabledNetworks(networks, ChainController.state.activeChain);
112
+ });
113
+ provider.onSetPreferredAccount(({ address, type }) => {
114
+ if (!address) {
115
+ return;
116
+ }
117
+ this.setPreferredAccountType(type, ChainController.state.activeChain);
118
+ });
119
+ }
120
+ async syncAuthConnector(provider, chainNamespace) {
121
+ const isAuthSupported = ConstantsUtil.AUTH_CONNECTOR_SUPPORTED_CHAINS.includes(chainNamespace);
122
+ if (!isAuthSupported) {
123
+ return;
124
+ }
125
+ this.setLoading(true, chainNamespace);
126
+ const isLoginEmailUsed = provider.getLoginEmailUsed();
127
+ this.setLoading(isLoginEmailUsed, chainNamespace);
128
+ if (isLoginEmailUsed) {
129
+ this.setStatus('connecting', chainNamespace);
130
+ }
131
+ const email = provider.getEmail();
132
+ const username = provider.getUsername();
133
+ this.setUser({ ...(AccountController.state?.user || {}), username, email }, ChainController.state.activeChain);
134
+ this.setupAuthConnectorListeners(provider);
135
+ const { isConnected } = await provider.isConnected();
136
+ const theme = ThemeController.getSnapshot();
137
+ const options = OptionsController.getSnapshot();
138
+ provider.syncDappData({
139
+ metadata: options.metadata,
140
+ sdkVersion: options.sdkVersion,
141
+ projectId: options.projectId,
142
+ sdkType: options.sdkType
143
+ });
144
+ provider.syncTheme({
145
+ themeMode: theme.themeMode,
146
+ themeVariables: theme.themeVariables,
147
+ w3mThemeVariables: getW3mThemeVariables(theme.themeVariables, theme.themeMode)
148
+ });
149
+ if (chainNamespace && isAuthSupported) {
150
+ if (isConnected && this.connectionControllerClient?.connectExternal) {
151
+ await this.connectionControllerClient?.connectExternal({
152
+ id: ConstantsUtil.CONNECTOR_ID.AUTH,
153
+ info: { name: ConstantsUtil.CONNECTOR_ID.AUTH },
154
+ type: UtilConstantsUtil.CONNECTOR_TYPE_AUTH,
155
+ provider,
156
+ chainId: ChainController.state.activeCaipNetwork?.id,
157
+ chain: chainNamespace
158
+ });
159
+ this.setStatus('connected', chainNamespace);
160
+ }
161
+ else if (ConnectorController.getConnectorId(chainNamespace) === ConstantsUtil.CONNECTOR_ID.AUTH) {
162
+ this.setStatus('disconnected', chainNamespace);
163
+ StorageUtil.removeConnectedNamespace(chainNamespace);
164
+ }
165
+ }
166
+ this.setLoading(false, chainNamespace);
167
+ }
168
+ async checkExistingTelegramSocialConnection(chainNamespace) {
169
+ try {
170
+ if (!CoreHelperUtil.isTelegram()) {
171
+ return;
172
+ }
173
+ const socialProviderToConnect = StorageUtil.getTelegramSocialProvider();
174
+ if (!socialProviderToConnect) {
175
+ return;
176
+ }
177
+ if (typeof window === 'undefined' || typeof document === 'undefined') {
178
+ return;
179
+ }
180
+ const url = new URL(window.location.href);
181
+ const resultUri = url.searchParams.get('result_uri');
182
+ if (!resultUri) {
183
+ return;
184
+ }
185
+ AccountController.setSocialProvider(socialProviderToConnect, chainNamespace);
186
+ await this.authProvider?.init();
187
+ const authConnector = ConnectorController.getAuthConnector();
188
+ if (socialProviderToConnect && authConnector) {
189
+ this.setLoading(true, chainNamespace);
190
+ await authConnector.provider.connectSocial(resultUri);
191
+ await ConnectionController.connectExternal(authConnector, authConnector.chain);
192
+ StorageUtil.setConnectedSocialProvider(socialProviderToConnect);
193
+ StorageUtil.removeTelegramSocialProvider();
194
+ EventsController.sendEvent({
195
+ type: 'track',
196
+ event: 'SOCIAL_LOGIN_SUCCESS',
197
+ properties: { provider: socialProviderToConnect }
198
+ });
199
+ }
200
+ }
201
+ catch (error) {
202
+ this.setLoading(false, chainNamespace);
203
+ // eslint-disable-next-line no-console
204
+ console.error('checkExistingSTelegramocialConnection error', error);
205
+ }
206
+ try {
207
+ const url = new URL(window.location.href);
208
+ // Remove the 'result_uri' parameter
209
+ url.searchParams.delete('result_uri');
210
+ // Update the URL without reloading the page
211
+ window.history.replaceState({}, document.title, url.toString());
212
+ }
213
+ catch (error) {
214
+ // eslint-disable-next-line no-console
215
+ console.error('tma social login failed', error);
216
+ }
217
+ }
218
+ createAuthProvider(chainNamespace) {
219
+ const isSupported = ConstantsUtil.AUTH_CONNECTOR_SUPPORTED_CHAINS.includes(chainNamespace);
220
+ if (!isSupported) {
221
+ return;
222
+ }
223
+ const isEmailEnabled = this.options?.features?.email === undefined
224
+ ? CoreConstantsUtil.DEFAULT_FEATURES.email
225
+ : this.options?.features?.email;
226
+ const isSocialsEnabled = this.options?.features?.socials
227
+ ? this.options?.features?.socials?.length > 0
228
+ : CoreConstantsUtil.DEFAULT_FEATURES.socials;
229
+ const isAuthEnabled = isEmailEnabled || isSocialsEnabled;
230
+ if (!this.authProvider && this.options?.projectId && isAuthEnabled) {
231
+ this.authProvider = W3mFrameProviderSingleton.getInstance({
232
+ projectId: this.options.projectId,
233
+ enableLogger: this.options.enableAuthLogger,
234
+ chainId: this.getCaipNetwork(chainNamespace)?.caipNetworkId,
235
+ onTimeout: () => {
236
+ AlertController.open(ErrorUtil.ALERT_ERRORS.SOCIALS_TIMEOUT, 'error');
237
+ }
238
+ });
239
+ this.subscribeState(val => {
240
+ if (!val.open) {
241
+ this.authProvider?.rejectRpcRequests();
242
+ }
243
+ });
244
+ this.syncAuthConnector(this.authProvider, chainNamespace);
245
+ this.checkExistingTelegramSocialConnection(chainNamespace);
246
+ }
247
+ }
248
+ createAuthProviderForAdapter(chainNamespace) {
249
+ // Override as we need to set authProvider for each adapter
250
+ this.createAuthProvider(chainNamespace);
251
+ if (this.authProvider) {
252
+ this.chainAdapters?.[chainNamespace]?.setAuthProvider?.(this.authProvider);
253
+ }
254
+ }
255
+ // -- Overrides ----------------------------------------------------------------
256
+ initControllers(options) {
257
+ super.initControllers(options);
258
+ if (this.options.excludeWalletIds) {
259
+ ApiController.initializeExcludedWalletRdns({ ids: this.options.excludeWalletIds });
260
+ }
261
+ }
262
+ async switchCaipNetwork(caipNetwork) {
263
+ if (!caipNetwork) {
264
+ return;
265
+ }
266
+ const currentNamespace = ChainController.state.activeChain;
267
+ const networkNamespace = caipNetwork.chainNamespace;
268
+ const namespaceAddress = this.getAddressByChainNamespace(caipNetwork.chainNamespace);
269
+ if (caipNetwork.chainNamespace === ChainController.state.activeChain && namespaceAddress) {
270
+ const adapter = this.getAdapter(networkNamespace);
271
+ const provider = ProviderUtil.getProvider(networkNamespace);
272
+ const providerType = ProviderUtil.getProviderId(networkNamespace);
273
+ await adapter?.switchNetwork({ caipNetwork, provider, providerType });
274
+ this.setCaipNetwork(caipNetwork);
275
+ }
276
+ else {
277
+ const currentNamespaceProviderType = ProviderUtil.getProviderId(currentNamespace);
278
+ const isCurrentNamespaceAuthProvider = currentNamespaceProviderType === UtilConstantsUtil.CONNECTOR_TYPE_AUTH;
279
+ const newNamespaceProviderType = ProviderUtil.getProviderId(networkNamespace);
280
+ const isNewNamespaceAuthProvider = newNamespaceProviderType === UtilConstantsUtil.CONNECTOR_TYPE_AUTH;
281
+ const isNewNamespaceSupportsAuthConnector = ConstantsUtil.AUTH_CONNECTOR_SUPPORTED_CHAINS.includes(networkNamespace);
282
+ if (
283
+ // If the current namespace is one of the auth connector supported chains, when switching to other supported namespace, we should use the auth connector
284
+ (isCurrentNamespaceAuthProvider || isNewNamespaceAuthProvider) &&
285
+ isNewNamespaceSupportsAuthConnector) {
286
+ try {
287
+ ChainController.state.activeChain = caipNetwork.chainNamespace;
288
+ await this.connectionControllerClient?.connectExternal?.({
289
+ id: ConstantsUtil.CONNECTOR_ID.AUTH,
290
+ provider: this.authProvider,
291
+ chain: networkNamespace,
292
+ chainId: caipNetwork.id,
293
+ type: UtilConstantsUtil.CONNECTOR_TYPE_AUTH,
294
+ caipNetwork
295
+ });
296
+ this.setCaipNetwork(caipNetwork);
297
+ }
298
+ catch (error) {
299
+ const adapter = this.getAdapter(networkNamespace);
300
+ await adapter?.switchNetwork({
301
+ caipNetwork,
302
+ provider: this.authProvider,
303
+ providerType: newNamespaceProviderType
304
+ });
305
+ }
306
+ }
307
+ else if (newNamespaceProviderType === UtilConstantsUtil.CONNECTOR_TYPE_WALLET_CONNECT) {
308
+ this.setCaipNetwork(caipNetwork);
309
+ this.syncWalletConnectAccount();
310
+ }
311
+ else {
312
+ this.setCaipNetwork(caipNetwork);
313
+ if (namespaceAddress) {
314
+ this.syncAccount({
315
+ address: namespaceAddress,
316
+ chainId: caipNetwork.id,
317
+ chainNamespace: networkNamespace
318
+ });
319
+ }
320
+ }
321
+ }
322
+ }
323
+ async initChainAdapter(namespace) {
324
+ await super.initChainAdapter(namespace);
325
+ this.createAuthProviderForAdapter(namespace);
326
+ }
327
+ syncConnectedWalletInfo(chainNamespace) {
328
+ const providerType = ProviderUtil.getProviderId(chainNamespace);
329
+ if (providerType === UtilConstantsUtil.CONNECTOR_TYPE_AUTH) {
330
+ const provider = this.authProvider;
331
+ if (provider) {
332
+ const social = StorageUtil.getConnectedSocialProvider() ?? 'email';
333
+ const identifier = provider.getEmail() ?? provider.getUsername();
334
+ this.setConnectedWalletInfo({ name: providerType, identifier, social }, chainNamespace);
335
+ }
336
+ }
337
+ else {
338
+ super.syncConnectedWalletInfo(chainNamespace);
339
+ }
340
+ }
341
+ async injectModalUi() {
342
+ if (!isInitialized && CoreHelperUtil.isClient()) {
343
+ const features = { ...CoreConstantsUtil.DEFAULT_FEATURES, ...this.options.features };
344
+ // Selectively import views based on feature flags
345
+ const featureImportPromises = [];
346
+ if (features) {
347
+ const usingEmbeddedWallet = features.email || (features.socials && features.socials.length);
348
+ if (usingEmbeddedWallet) {
349
+ featureImportPromises.push(import('@reown/appkit-scaffold-ui/embedded-wallet'));
350
+ }
351
+ if (features.email) {
352
+ featureImportPromises.push(import('@reown/appkit-scaffold-ui/email'));
353
+ }
354
+ if (features.socials) {
355
+ featureImportPromises.push(import('@reown/appkit-scaffold-ui/socials'));
356
+ }
357
+ if (features.swaps) {
358
+ featureImportPromises.push(import('@reown/appkit-scaffold-ui/swaps'));
359
+ }
360
+ if (features.send) {
361
+ featureImportPromises.push(import('@reown/appkit-scaffold-ui/send'));
362
+ }
363
+ if (features.receive) {
364
+ featureImportPromises.push(import('@reown/appkit-scaffold-ui/receive'));
365
+ }
366
+ if (features.onramp) {
367
+ featureImportPromises.push(import('@reown/appkit-scaffold-ui/onramp'));
368
+ }
369
+ if (features.history) {
370
+ featureImportPromises.push(import('@reown/appkit-scaffold-ui/transactions'));
371
+ }
372
+ }
373
+ await Promise.all([
374
+ ...featureImportPromises,
375
+ import('@reown/appkit-scaffold-ui'),
376
+ import('@reown/appkit-scaffold-ui/w3m-modal')
377
+ ]);
378
+ const isElementCreated = document.querySelector('w3m-modal');
379
+ if (!isElementCreated) {
380
+ const modal = document.createElement('w3m-modal');
381
+ if (!OptionsController.state.disableAppend && !OptionsController.state.enableEmbedded) {
382
+ document.body.insertAdjacentElement('beforeend', modal);
383
+ }
384
+ }
385
+ isInitialized = true;
386
+ }
387
+ }
388
+ }
389
+ //# sourceMappingURL=appkit.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"appkit.js","sourceRoot":"","sources":["../../../../src/client/appkit.ts"],"names":[],"mappings":"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"}