@web3auth/modal 7.3.0 → 8.0.0-alpha.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.
package/dist/modal.esm.js CHANGED
@@ -1,7 +1,7 @@
1
- import { CHAIN_NAMESPACES, SOLANA_ADAPTERS, EVM_ADAPTERS, getChainConfig, WALLET_ADAPTERS, log, ADAPTER_CATEGORY, ADAPTER_STATUS, ADAPTER_EVENTS } from '@web3auth/base';
1
+ import { CHAIN_NAMESPACES, SOLANA_ADAPTERS, EVM_ADAPTERS, log, WalletInitializationError, ADAPTER_CATEGORY, getChainConfig, WALLET_ADAPTERS, ADAPTER_STATUS, ADAPTER_EVENTS } from '@web3auth/base';
2
2
  import _objectSpread from '@babel/runtime/helpers/objectSpread2';
3
3
  import _defineProperty from '@babel/runtime/helpers/defineProperty';
4
- import { CommonPrivateKeyProvider, CommonJRPCProvider } from '@web3auth/base-provider';
4
+ import { CommonJRPCProvider } from '@web3auth/base-provider';
5
5
  import { Web3AuthNoModal } from '@web3auth/no-modal';
6
6
  import { getUserLanguage, LoginModal, getAdapterSocialLogins, LOGIN_MODAL_EVENTS, OPENLOGIN_PROVIDERS } from '@web3auth/ui';
7
7
 
@@ -91,134 +91,6 @@ const defaultOtherModalConfig = {
91
91
  }
92
92
  };
93
93
 
94
- async function getPrivateKeyProvider(chainConfig) {
95
- if (chainConfig.chainNamespace === CHAIN_NAMESPACES.SOLANA) {
96
- const {
97
- SolanaPrivateKeyProvider
98
- } = await import('@web3auth/solana-provider');
99
- return new SolanaPrivateKeyProvider({
100
- config: {
101
- chainConfig
102
- }
103
- });
104
- } else if (chainConfig.chainNamespace === CHAIN_NAMESPACES.EIP155) {
105
- const {
106
- EthereumPrivateKeyProvider
107
- } = await import('@web3auth/ethereum-provider');
108
- return new EthereumPrivateKeyProvider({
109
- config: {
110
- chainConfig
111
- }
112
- });
113
- } else if (chainConfig.chainNamespace === CHAIN_NAMESPACES.OTHER) {
114
- // Modal doesn't support ripple provider
115
- // Can always override this with a custom provider
116
- return new CommonPrivateKeyProvider({
117
- config: {
118
- chainConfig
119
- }
120
- });
121
- }
122
- throw new Error(`Invalid chainNamespace: ${chainConfig.chainNamespace} found while connecting to wallet`);
123
- }
124
-
125
- // warning: this function is not compatible with "OTHER" chain namespace.
126
- const getDefaultAdapterModule = async params => {
127
- const {
128
- name,
129
- customChainConfig,
130
- clientId,
131
- sessionTime,
132
- web3AuthNetwork,
133
- uiConfig
134
- } = params;
135
- if (!Object.values(CHAIN_NAMESPACES).includes(customChainConfig.chainNamespace)) throw new Error(`Invalid chainNamespace: ${customChainConfig.chainNamespace}`);
136
- const finalChainConfig = _objectSpread(_objectSpread({}, getChainConfig(customChainConfig.chainNamespace, customChainConfig === null || customChainConfig === void 0 ? void 0 : customChainConfig.chainId)), customChainConfig || {});
137
- if (name === WALLET_ADAPTERS.TORUS_EVM) {
138
- const {
139
- TorusWalletAdapter
140
- } = await import('@web3auth/torus-evm-adapter');
141
- const adapter = new TorusWalletAdapter({
142
- chainConfig: finalChainConfig,
143
- clientId,
144
- sessionTime,
145
- web3AuthNetwork
146
- });
147
- return adapter;
148
- } else if (name === WALLET_ADAPTERS.TORUS_SOLANA) {
149
- const {
150
- SolanaWalletAdapter
151
- } = await import('@web3auth/torus-solana-adapter');
152
- const adapter = new SolanaWalletAdapter({
153
- chainConfig: finalChainConfig,
154
- clientId,
155
- sessionTime,
156
- web3AuthNetwork
157
- });
158
- return adapter;
159
- } else if (name === WALLET_ADAPTERS.METAMASK) {
160
- const {
161
- MetamaskAdapter
162
- } = await import('@web3auth/metamask-adapter');
163
- const adapter = new MetamaskAdapter({
164
- chainConfig: finalChainConfig,
165
- clientId,
166
- sessionTime,
167
- web3AuthNetwork
168
- });
169
- return adapter;
170
- } else if (name === WALLET_ADAPTERS.PHANTOM) {
171
- const {
172
- PhantomAdapter
173
- } = await import('@web3auth/phantom-adapter');
174
- const adapter = new PhantomAdapter({
175
- chainConfig: finalChainConfig,
176
- clientId,
177
- sessionTime,
178
- web3AuthNetwork
179
- });
180
- return adapter;
181
- } else if (name === WALLET_ADAPTERS.WALLET_CONNECT_V2) {
182
- const {
183
- WalletConnectV2Adapter
184
- } = await import('@web3auth/wallet-connect-v2-adapter');
185
- const adapter = new WalletConnectV2Adapter({
186
- chainConfig: finalChainConfig,
187
- clientId,
188
- sessionTime,
189
- web3AuthNetwork,
190
- adapterSettings: {
191
- walletConnectInitOptions: {
192
- // Using a default wallet connect project id for web3auth modal integration
193
- projectId: "d3c63f19f9582f8ba48e982057eb096b"
194
- }
195
- }
196
- });
197
- return adapter;
198
- } else if (name === WALLET_ADAPTERS.OPENLOGIN) {
199
- const {
200
- OpenloginAdapter,
201
- getOpenloginDefaultOptions
202
- } = await import('@web3auth/openlogin-adapter');
203
- const privateKeyProvider = await getPrivateKeyProvider(finalChainConfig);
204
- const defaultOptions = getOpenloginDefaultOptions();
205
- const adapter = new OpenloginAdapter(_objectSpread(_objectSpread({}, defaultOptions), {}, {
206
- clientId,
207
- chainConfig: _objectSpread({}, finalChainConfig),
208
- adapterSettings: _objectSpread(_objectSpread({}, defaultOptions.adapterSettings), {}, {
209
- clientId,
210
- network: web3AuthNetwork,
211
- whiteLabel: uiConfig
212
- }),
213
- sessionTime,
214
- web3AuthNetwork,
215
- privateKeyProvider
216
- }));
217
- return adapter;
218
- }
219
- throw new Error("Invalid wallet adapter name");
220
- };
221
-
222
94
  class Web3Auth extends Web3AuthNoModal {
223
95
  constructor(options) {
224
96
  super(options);
@@ -260,7 +132,7 @@ class Web3Auth extends Web3AuthNoModal {
260
132
  super.checkInitRequirements();
261
133
  await this.loginModal.initModal();
262
134
  const providedChainConfig = this.options.chainConfig;
263
-
135
+ // TODO: get stuff from dashboard here
264
136
  // merge default adapters with the custom configured adapters.
265
137
  const allAdapters = [...new Set([...Object.keys(this.modalConfig.adapters || {}), ...Object.keys(this.walletAdapters)])];
266
138
  const adapterConfigurationPromises = allAdapters.map(async adapterName => {
@@ -286,17 +158,8 @@ class Web3Auth extends Web3AuthNoModal {
286
158
  // if adapter is not custom configured then check if it is available in default adapters.
287
159
  // and if adapter is not hidden by user
288
160
  if (!adapter && (_this$modalConfig$ada3 = this.modalConfig.adapters) !== null && _this$modalConfig$ada3 !== void 0 && _this$modalConfig$ada3[adapterName].showOnModal) {
289
- // if adapter is not configured and some default configuration is available, use it.
290
- const ad = await getDefaultAdapterModule({
291
- name: adapterName,
292
- customChainConfig: this.options.chainConfig,
293
- clientId: this.options.clientId,
294
- sessionTime: this.options.sessionTime,
295
- web3AuthNetwork: this.options.web3AuthNetwork,
296
- uiConfig: this.options.uiConfig
297
- });
298
- this.walletAdapters[adapterName] = ad;
299
- return adapterName;
161
+ // Adapters to be shown on modal should be pre-configured.
162
+ throw WalletInitializationError.invalidParams(`Adapter ${adapterName} is not configured`);
300
163
  } else if ((adapter === null || adapter === void 0 ? void 0 : adapter.type) === ADAPTER_CATEGORY.IN_APP || (adapter === null || adapter === void 0 ? void 0 : adapter.type) === ADAPTER_CATEGORY.EXTERNAL || adapterName === this.cachedAdapter) {
301
164
  var _this$modalConfig$ada4;
302
165
  if (!((_this$modalConfig$ada4 = this.modalConfig.adapters) !== null && _this$modalConfig$ada4 !== void 0 && _this$modalConfig$ada4[adapterName].showOnModal)) return;
@@ -305,7 +168,8 @@ class Web3Auth extends Web3AuthNoModal {
305
168
  this.walletAdapters[adapterName].setAdapterSettings({
306
169
  clientId: this.options.clientId,
307
170
  sessionTime: this.options.sessionTime,
308
- web3AuthNetwork: this.options.web3AuthNetwork
171
+ web3AuthNetwork: this.options.web3AuthNetwork,
172
+ useCoreKitKey: this.coreOptions.useCoreKitKey
309
173
  });
310
174
 
311
175
  // if adapter doesn't have any chainConfig then we will set the chainConfig based of passed chainNamespace
@@ -319,13 +183,30 @@ class Web3Auth extends Web3AuthNoModal {
319
183
  }
320
184
  if (adapterName === WALLET_ADAPTERS.OPENLOGIN) {
321
185
  const openloginAdapter = this.walletAdapters[adapterName];
322
- if (!openloginAdapter.privateKeyProvider) {
323
- const currentPrivateKeyProvider = await getPrivateKeyProvider(openloginAdapter.chainConfigProxy);
186
+ if (this.coreOptions.privateKeyProvider) {
187
+ if (openloginAdapter.currentChainNamespace !== this.coreOptions.privateKeyProvider.currentChainConfig.chainNamespace) {
188
+ throw WalletInitializationError.incompatibleChainNameSpace("private key provider is not compatible with provided chainNamespace for openlogin adapter");
189
+ }
324
190
  openloginAdapter.setAdapterSettings({
325
- privateKeyProvider: currentPrivateKeyProvider,
326
- whiteLabel: this.options.uiConfig
191
+ privateKeyProvider: this.coreOptions.privateKeyProvider
327
192
  });
328
193
  }
194
+ openloginAdapter.setAdapterSettings({
195
+ whiteLabel: this.options.uiConfig
196
+ });
197
+ if (!openloginAdapter.privateKeyProvider) {
198
+ throw WalletInitializationError.invalidParams("privateKeyProvider is required for openlogin adapter");
199
+ }
200
+ } else if (adapterName === WALLET_ADAPTERS.WALLET_CONNECT_V2) {
201
+ const walletConnectAdapter = this.walletAdapters[adapterName];
202
+ walletConnectAdapter.setAdapterSettings({
203
+ adapterSettings: {
204
+ walletConnectInitOptions: {
205
+ // Using a default wallet connect project id for web3auth modal integration
206
+ projectId: "d3c63f19f9582f8ba48e982057eb096b" // TODO: get from dashboard
207
+ }
208
+ }
209
+ });
329
210
  }
330
211
  return adapterName;
331
212
  }
@@ -1 +1 @@
1
- {"version":3,"file":"modal.esm.js","sources":["../src/config.ts","../src/default.ts","../src/modalManager.ts"],"sourcesContent":["import { CHAIN_NAMESPACES, EVM_ADAPTERS, SOLANA_ADAPTERS } from \"@web3auth/base\";\n\nimport { AdaptersModalConfig } from \"./interface\";\n\nexport const defaultSolanaDappModalConfig: AdaptersModalConfig = {\n chainNamespace: CHAIN_NAMESPACES.SOLANA,\n adapters: {\n [SOLANA_ADAPTERS.TORUS_SOLANA]: {\n label: \"Torus Wallet\",\n showOnModal: true,\n showOnMobile: true,\n showOnDesktop: true,\n },\n [SOLANA_ADAPTERS.OPENLOGIN]: {\n label: \"OpenLogin\",\n showOnModal: true,\n showOnMobile: true,\n showOnDesktop: true,\n },\n [SOLANA_ADAPTERS.PHANTOM]: {\n label: \"Phantom\",\n showOnModal: true,\n showOnMobile: true,\n showOnDesktop: true,\n },\n },\n};\n\nexport const defaultEvmDappModalConfig: AdaptersModalConfig = {\n chainNamespace: CHAIN_NAMESPACES.EIP155,\n adapters: {\n [EVM_ADAPTERS.TORUS_EVM]: {\n label: \"Torus Wallet\",\n showOnModal: true,\n showOnMobile: true,\n showOnDesktop: true,\n },\n [EVM_ADAPTERS.METAMASK]: {\n label: \"MetaMask\",\n showOnModal: true,\n showOnMobile: true,\n showOnDesktop: true,\n },\n [EVM_ADAPTERS.OPENLOGIN]: {\n label: \"OpenLogin\",\n showOnModal: true,\n showOnMobile: true,\n showOnDesktop: true,\n },\n [EVM_ADAPTERS.WALLET_CONNECT_V2]: {\n label: \"Wallet Connect\",\n showOnModal: true,\n showOnMobile: true,\n showOnDesktop: true,\n },\n },\n};\n\nexport const defaultSolanaWalletModalConfig: AdaptersModalConfig = {\n chainNamespace: CHAIN_NAMESPACES.SOLANA,\n adapters: {\n [SOLANA_ADAPTERS.OPENLOGIN]: {\n label: \"OpenLogin\",\n showOnModal: true,\n showOnMobile: true,\n showOnDesktop: true,\n },\n },\n};\n\nexport const defaultEvmWalletModalConfig: AdaptersModalConfig = {\n chainNamespace: CHAIN_NAMESPACES.EIP155,\n adapters: {\n [EVM_ADAPTERS.OPENLOGIN]: {\n label: \"OpenLogin\",\n showOnModal: true,\n showOnMobile: true,\n showOnDesktop: true,\n },\n },\n};\n\nexport const defaultOtherModalConfig: AdaptersModalConfig = {\n chainNamespace: CHAIN_NAMESPACES.OTHER,\n adapters: {\n [EVM_ADAPTERS.OPENLOGIN]: {\n label: \"OpenLogin\",\n showOnModal: true,\n showOnMobile: true,\n showOnDesktop: true,\n },\n },\n};\n","import type { OPENLOGIN_NETWORK_TYPE, OpenLoginOptions } from \"@toruslabs/openlogin-utils\";\nimport { CHAIN_NAMESPACES, CustomChainConfig, getChainConfig, IAdapter, IBaseProvider, WALLET_ADAPTER_TYPE, WALLET_ADAPTERS } from \"@web3auth/base\";\nimport { CommonPrivateKeyProvider } from \"@web3auth/base-provider\";\nimport { UIConfig } from \"@web3auth/ui\";\n\nexport async function getPrivateKeyProvider(chainConfig: CustomChainConfig): Promise<IBaseProvider<string>> {\n if (chainConfig.chainNamespace === CHAIN_NAMESPACES.SOLANA) {\n const { SolanaPrivateKeyProvider } = await import(\"@web3auth/solana-provider\");\n return new SolanaPrivateKeyProvider({ config: { chainConfig } });\n } else if (chainConfig.chainNamespace === CHAIN_NAMESPACES.EIP155) {\n const { EthereumPrivateKeyProvider } = await import(\"@web3auth/ethereum-provider\");\n return new EthereumPrivateKeyProvider({ config: { chainConfig } });\n } else if (chainConfig.chainNamespace === CHAIN_NAMESPACES.OTHER) {\n // Modal doesn't support ripple provider\n // Can always override this with a custom provider\n return new CommonPrivateKeyProvider({ config: { chainConfig } });\n }\n throw new Error(`Invalid chainNamespace: ${chainConfig.chainNamespace} found while connecting to wallet`);\n}\n\n// warning: this function is not compatible with \"OTHER\" chain namespace.\nexport const getDefaultAdapterModule = async (params: {\n name: WALLET_ADAPTER_TYPE;\n clientId: string;\n customChainConfig: Partial<CustomChainConfig> & Pick<CustomChainConfig, \"chainNamespace\">;\n sessionTime?: number;\n web3AuthNetwork?: OPENLOGIN_NETWORK_TYPE;\n uiConfig?: Omit<UIConfig, \"adapterListener\">;\n}): Promise<IAdapter<unknown>> => {\n const { name, customChainConfig, clientId, sessionTime, web3AuthNetwork, uiConfig } = params;\n if (!Object.values(CHAIN_NAMESPACES).includes(customChainConfig.chainNamespace))\n throw new Error(`Invalid chainNamespace: ${customChainConfig.chainNamespace}`);\n const finalChainConfig = {\n ...(getChainConfig(customChainConfig.chainNamespace, customChainConfig?.chainId) as CustomChainConfig),\n ...(customChainConfig || {}),\n };\n if (name === WALLET_ADAPTERS.TORUS_EVM) {\n const { TorusWalletAdapter } = await import(\"@web3auth/torus-evm-adapter\");\n const adapter = new TorusWalletAdapter({ chainConfig: finalChainConfig, clientId, sessionTime, web3AuthNetwork });\n return adapter;\n } else if (name === WALLET_ADAPTERS.TORUS_SOLANA) {\n const { SolanaWalletAdapter } = await import(\"@web3auth/torus-solana-adapter\");\n const adapter = new SolanaWalletAdapter({ chainConfig: finalChainConfig, clientId, sessionTime, web3AuthNetwork });\n return adapter;\n } else if (name === WALLET_ADAPTERS.METAMASK) {\n const { MetamaskAdapter } = await import(\"@web3auth/metamask-adapter\");\n const adapter = new MetamaskAdapter({ chainConfig: finalChainConfig, clientId, sessionTime, web3AuthNetwork });\n return adapter;\n } else if (name === WALLET_ADAPTERS.PHANTOM) {\n const { PhantomAdapter } = await import(\"@web3auth/phantom-adapter\");\n const adapter = new PhantomAdapter({ chainConfig: finalChainConfig, clientId, sessionTime, web3AuthNetwork });\n return adapter;\n } else if (name === WALLET_ADAPTERS.WALLET_CONNECT_V2) {\n const { WalletConnectV2Adapter } = await import(\"@web3auth/wallet-connect-v2-adapter\");\n const adapter = new WalletConnectV2Adapter({\n chainConfig: finalChainConfig,\n clientId,\n sessionTime,\n web3AuthNetwork,\n adapterSettings: {\n walletConnectInitOptions: {\n // Using a default wallet connect project id for web3auth modal integration\n projectId: \"d3c63f19f9582f8ba48e982057eb096b\",\n },\n },\n });\n return adapter;\n } else if (name === WALLET_ADAPTERS.OPENLOGIN) {\n const { OpenloginAdapter, getOpenloginDefaultOptions } = await import(\"@web3auth/openlogin-adapter\");\n\n const privateKeyProvider: IBaseProvider<string> = await getPrivateKeyProvider(finalChainConfig);\n\n const defaultOptions = getOpenloginDefaultOptions();\n const adapter = new OpenloginAdapter({\n ...defaultOptions,\n clientId,\n chainConfig: { ...finalChainConfig },\n adapterSettings: { ...(defaultOptions.adapterSettings as OpenLoginOptions), clientId, network: web3AuthNetwork, whiteLabel: uiConfig },\n sessionTime,\n web3AuthNetwork,\n privateKeyProvider,\n });\n return adapter;\n }\n throw new Error(\"Invalid wallet adapter name\");\n};\n","import {\n ADAPTER_CATEGORY,\n ADAPTER_EVENTS,\n ADAPTER_STATUS,\n BaseAdapterConfig,\n CHAIN_NAMESPACES,\n CustomChainConfig,\n getChainConfig,\n IProvider,\n log,\n LoginMethodConfig,\n WALLET_ADAPTER_TYPE,\n WALLET_ADAPTERS,\n} from \"@web3auth/base\";\nimport { CommonJRPCProvider } from \"@web3auth/base-provider\";\nimport { Web3AuthNoModal, Web3AuthNoModalOptions } from \"@web3auth/no-modal\";\nimport type { OpenloginAdapter } from \"@web3auth/openlogin-adapter\";\nimport { getAdapterSocialLogins, getUserLanguage, LOGIN_MODAL_EVENTS, LoginModal, OPENLOGIN_PROVIDERS, UIConfig } from \"@web3auth/ui\";\n\nimport {\n defaultEvmDappModalConfig,\n defaultEvmWalletModalConfig,\n defaultOtherModalConfig,\n defaultSolanaDappModalConfig,\n defaultSolanaWalletModalConfig,\n} from \"./config\";\nimport { getDefaultAdapterModule, getPrivateKeyProvider } from \"./default\";\nimport { AdaptersModalConfig, IWeb3AuthModal, ModalConfig } from \"./interface\";\n\nexport interface Web3AuthOptions extends Web3AuthNoModalOptions {\n /**\n * web3auth instance provides different adapters for different type of usages. If you are dapp and want to\n * use external wallets like metamask, then you can use the `DAPP` authMode.\n * If you are a wallet and only want to use you own wallet implementations along with openlogin,\n * then you should use `WALLET` authMode.\n *\n * @defaultValue `DAPP`\n */\n authMode?: \"DAPP\" | \"WALLET\";\n /**\n * Config for configuring modal ui display properties\n */\n uiConfig?: Omit<UIConfig, \"adapterListener\">;\n}\n\nexport class Web3Auth extends Web3AuthNoModal implements IWeb3AuthModal {\n public loginModal: LoginModal;\n\n readonly options: Web3AuthOptions;\n\n private modalConfig: AdaptersModalConfig = defaultEvmDappModalConfig;\n\n constructor(options: Web3AuthOptions) {\n super(options);\n this.options = { ...options };\n const providedChainConfig = this.options.chainConfig;\n if (providedChainConfig.chainNamespace === CHAIN_NAMESPACES.SOLANA) {\n if (options.authMode === \"WALLET\") {\n // default config for solana wallet modal\n this.modalConfig = defaultSolanaWalletModalConfig;\n } else {\n // default config for solana dapp modal\n this.modalConfig = defaultSolanaDappModalConfig;\n }\n } else if (providedChainConfig.chainNamespace === CHAIN_NAMESPACES.EIP155) {\n if (options.authMode === \"WALLET\") {\n // default config for evm wallet modal\n this.modalConfig = defaultEvmWalletModalConfig;\n } else {\n // default config for evm dapp modal\n this.modalConfig = defaultEvmDappModalConfig;\n }\n } else if (providedChainConfig.chainNamespace === CHAIN_NAMESPACES.OTHER) {\n this.modalConfig = defaultOtherModalConfig;\n } else {\n throw new Error(`Invalid chainNamespace provided: ${providedChainConfig.chainNamespace}`);\n }\n\n if (!this.options.uiConfig) this.options.uiConfig = {};\n if (!this.options.uiConfig.defaultLanguage) this.options.uiConfig.defaultLanguage = getUserLanguage(this.options.uiConfig.defaultLanguage);\n if (!this.options.uiConfig.mode) this.options.uiConfig.mode = \"auto\";\n\n this.loginModal = new LoginModal({\n ...this.options.uiConfig,\n adapterListener: this,\n });\n this.subscribeToLoginModalEvents();\n }\n\n public async initModal(params?: { modalConfig?: Record<WALLET_ADAPTER_TYPE, ModalConfig> }): Promise<void> {\n super.checkInitRequirements();\n await this.loginModal.initModal();\n const providedChainConfig = this.options.chainConfig;\n\n // merge default adapters with the custom configured adapters.\n const allAdapters = [...new Set([...Object.keys(this.modalConfig.adapters || {}), ...Object.keys(this.walletAdapters)])];\n\n const adapterConfigurationPromises = allAdapters.map(async (adapterName) => {\n // start with the default config of adapter.\n let adapterConfig = this.modalConfig.adapters?.[adapterName] || {\n label: adapterName,\n showOnModal: true,\n showOnMobile: true,\n showOnDesktop: true,\n };\n\n // override the default config of adapter if some config is being provided by the user.\n if (params?.modalConfig?.[adapterName]) {\n adapterConfig = { ...adapterConfig, ...params.modalConfig[adapterName] };\n }\n (this.modalConfig.adapters as Record<WALLET_ADAPTER_TYPE, ModalConfig>)[adapterName] = adapterConfig as ModalConfig;\n\n // check if adapter is configured/added by user and exist in walletAdapters map.\n const adapter = this.walletAdapters[adapterName];\n log.debug(\"adapter config\", adapterName, this.modalConfig.adapters?.[adapterName].showOnModal, adapter);\n\n // if adapter is not custom configured then check if it is available in default adapters.\n // and if adapter is not hidden by user\n if (!adapter && this.modalConfig.adapters?.[adapterName].showOnModal) {\n // if adapter is not configured and some default configuration is available, use it.\n const ad = await getDefaultAdapterModule({\n name: adapterName,\n customChainConfig: this.options.chainConfig,\n clientId: this.options.clientId,\n sessionTime: this.options.sessionTime,\n web3AuthNetwork: this.options.web3AuthNetwork,\n uiConfig: this.options.uiConfig,\n });\n\n this.walletAdapters[adapterName] = ad;\n return adapterName;\n } else if (adapter?.type === ADAPTER_CATEGORY.IN_APP || adapter?.type === ADAPTER_CATEGORY.EXTERNAL || adapterName === this.cachedAdapter) {\n if (!this.modalConfig.adapters?.[adapterName].showOnModal) return;\n // add client id to adapter, same web3auth client id can be used in adapter.\n // this id is being overridden if user is also passing client id in adapter's constructor.\n this.walletAdapters[adapterName].setAdapterSettings({\n clientId: this.options.clientId,\n sessionTime: this.options.sessionTime,\n web3AuthNetwork: this.options.web3AuthNetwork,\n });\n\n // if adapter doesn't have any chainConfig then we will set the chainConfig based of passed chainNamespace\n // and chainNamespace.\n if (!adapter.chainConfigProxy) {\n const chainConfig = {\n ...getChainConfig(providedChainConfig.chainNamespace, this.coreOptions.chainConfig?.chainId),\n ...this.coreOptions.chainConfig,\n } as CustomChainConfig;\n this.walletAdapters[adapterName].setAdapterSettings({ chainConfig });\n }\n\n if (adapterName === WALLET_ADAPTERS.OPENLOGIN) {\n const openloginAdapter = this.walletAdapters[adapterName] as OpenloginAdapter;\n if (!openloginAdapter.privateKeyProvider) {\n const currentPrivateKeyProvider = await getPrivateKeyProvider(openloginAdapter.chainConfigProxy as CustomChainConfig);\n openloginAdapter.setAdapterSettings({ privateKeyProvider: currentPrivateKeyProvider, whiteLabel: this.options.uiConfig });\n }\n }\n\n return adapterName;\n }\n });\n\n const adapterNames = await Promise.all(adapterConfigurationPromises);\n const hasInAppWallets = Object.values(this.walletAdapters).some((adapter) => {\n if (adapter.type !== ADAPTER_CATEGORY.IN_APP) return false;\n if (this.modalConfig.adapters?.[adapter.name]?.showOnModal !== true) return false;\n if (!this.modalConfig.adapters?.[adapter.name]?.loginMethods) return true;\n const mergedLoginMethods = getAdapterSocialLogins(\n adapter.name,\n (this.modalConfig.adapters as Record<WALLET_ADAPTER_TYPE, ModalConfig>)[adapter.name]?.loginMethods\n );\n if (Object.values(mergedLoginMethods).some((method: LoginMethodConfig[keyof LoginMethodConfig]) => method.showOnModal)) return true;\n return false;\n });\n log.debug(hasInAppWallets, this.walletAdapters, adapterNames, \"hasInAppWallets\");\n\n // Now, initialize the adapters.\n const initPromises = adapterNames.map(async (adapterName) => {\n if (!adapterName) return;\n try {\n const adapter = this.walletAdapters[adapterName];\n // only initialize a external adapter here if it is a cached adapter.\n if (this.cachedAdapter !== adapterName && adapter.type === ADAPTER_CATEGORY.EXTERNAL) {\n return;\n }\n // in-app wallets or cached wallet (being connected or already connected) are initialized first.\n // if adapter is configured thn only initialize in app or cached adapter.\n // external wallets are initialized on INIT_EXTERNAL_WALLET event.\n this.subscribeToAdapterEvents(adapter);\n if (adapter.status === ADAPTER_STATUS.NOT_READY) await adapter.init({ autoConnect: this.cachedAdapter === adapterName });\n // note: not adding cachedWallet to modal if it is external wallet.\n // adding it later if no in-app wallets are available.\n if (adapter.type === ADAPTER_CATEGORY.IN_APP) {\n this.initializeInAppWallet(adapterName);\n }\n } catch (error) {\n log.error(error, \"error while initializing adapter\");\n }\n });\n\n this.commonJRPCProvider = await CommonJRPCProvider.getProviderInstance({ chainConfig: this.coreOptions.chainConfig as CustomChainConfig });\n this.status = ADAPTER_STATUS.READY;\n await Promise.all(initPromises);\n\n const hasExternalWallets = allAdapters.some((adapterName) => {\n return this.walletAdapters[adapterName]?.type === ADAPTER_CATEGORY.EXTERNAL && this.modalConfig.adapters?.[adapterName].showOnModal;\n });\n\n if (hasExternalWallets) {\n this.loginModal.initExternalWalletContainer();\n }\n\n // variable to check if we have any in app wallets\n // currently all default in app and external wallets can be hidden or shown based on config.\n if (!hasInAppWallets && hasExternalWallets) {\n // if no in app wallet is available then initialize external wallets in modal\n await this.initExternalWalletAdapters(false, { showExternalWalletsOnly: true });\n }\n }\n\n public async connect(): Promise<IProvider | null> {\n // if (!this.loginModal.initialized) throw new Error(\"Login modal is not initialized\");\n // if already connected return provider\n if (this.connectedAdapterName && this.status === ADAPTER_STATUS.CONNECTED && this.provider) return this.provider;\n this.loginModal.open();\n return new Promise((resolve, reject) => {\n this.once(ADAPTER_EVENTS.CONNECTED, () => {\n return resolve(this.provider);\n });\n this.once(ADAPTER_EVENTS.ERRORED, (err: unknown) => {\n return reject(err);\n });\n this.once(LOGIN_MODAL_EVENTS.MODAL_VISIBILITY, (visibility: boolean) => {\n // modal is closed but user is not connected to any wallet.\n if (!visibility && this.status !== ADAPTER_STATUS.CONNECTED) {\n return reject(new Error(\"User closed the modal\"));\n }\n });\n });\n }\n\n private async initExternalWalletAdapters(externalWalletsInitialized: boolean, options?: { showExternalWalletsOnly: boolean }): Promise<void> {\n if (externalWalletsInitialized) return;\n const adaptersConfig: Record<string, BaseAdapterConfig> = {};\n Object.keys(this.walletAdapters).forEach(async (adapterName) => {\n const adapter = this.walletAdapters[adapterName];\n if (adapter?.type === ADAPTER_CATEGORY.EXTERNAL) {\n log.debug(\"init external wallet\", this.cachedAdapter, adapterName);\n this.subscribeToAdapterEvents(adapter);\n // we are not initializing cached adapter here as it is already being initialized in initModal before.\n if (this.cachedAdapter === adapterName) {\n return;\n }\n if (adapter.status === ADAPTER_STATUS.NOT_READY) {\n await adapter\n .init({ autoConnect: this.cachedAdapter === adapterName })\n .then(() => {\n adaptersConfig[adapterName] = (this.modalConfig.adapters as Record<WALLET_ADAPTER_TYPE, ModalConfig>)[adapterName];\n this.loginModal.addWalletLogins(adaptersConfig, { showExternalWalletsOnly: !!options?.showExternalWalletsOnly });\n return undefined;\n })\n .catch((error) => log.error(error, \"error while initializing adapter\"));\n } else if (adapter.status === ADAPTER_STATUS.READY) {\n adaptersConfig[adapterName] = (this.modalConfig.adapters as Record<WALLET_ADAPTER_TYPE, ModalConfig>)[adapterName];\n this.loginModal.addWalletLogins(adaptersConfig, { showExternalWalletsOnly: !!options?.showExternalWalletsOnly });\n }\n }\n });\n }\n\n private initializeInAppWallet(adapterName: string): void {\n log.info(\"adapterInitResults\", adapterName);\n if (this.walletAdapters[adapterName].type === ADAPTER_CATEGORY.IN_APP) {\n this.loginModal.addSocialLogins(\n adapterName,\n getAdapterSocialLogins(adapterName, (this.modalConfig.adapters as Record<WALLET_ADAPTER_TYPE, ModalConfig>)[adapterName]?.loginMethods),\n this.options.uiConfig?.loginMethodsOrder || OPENLOGIN_PROVIDERS,\n {\n ...this.options.uiConfig,\n loginGridCol: this.options.uiConfig?.loginGridCol || 3,\n primaryButton: this.options.uiConfig?.primaryButton || \"socialLogin\",\n }\n );\n }\n }\n\n private subscribeToLoginModalEvents(): void {\n this.loginModal.on(LOGIN_MODAL_EVENTS.LOGIN, async (params: { adapter: WALLET_ADAPTER_TYPE; loginParams: unknown }) => {\n try {\n await this.connectTo<unknown>(params.adapter, params.loginParams);\n } catch (error) {\n log.error(`Error while connecting to adapter: ${params.adapter}`, error);\n }\n });\n this.loginModal.on(LOGIN_MODAL_EVENTS.INIT_EXTERNAL_WALLETS, async (params: { externalWalletsInitialized: boolean }) => {\n await this.initExternalWalletAdapters(params.externalWalletsInitialized);\n });\n this.loginModal.on(LOGIN_MODAL_EVENTS.DISCONNECT, async () => {\n try {\n await this.logout();\n } catch (error) {\n log.error(`Error while disconnecting`, error);\n }\n });\n this.loginModal.on(LOGIN_MODAL_EVENTS.MODAL_VISIBILITY, async (visibility: boolean) => {\n log.debug(\"is login modal visible\", visibility);\n this.emit(LOGIN_MODAL_EVENTS.MODAL_VISIBILITY, visibility);\n const adapter = this.walletAdapters[WALLET_ADAPTERS.WALLET_CONNECT_V2];\n if (adapter) {\n const walletConnectStatus = adapter?.status;\n log.debug(\"trying refreshing wc session\", visibility, walletConnectStatus);\n if (visibility && (walletConnectStatus === ADAPTER_STATUS.READY || walletConnectStatus === ADAPTER_STATUS.CONNECTING)) {\n log.debug(\"refreshing wc session\");\n\n // refreshing session for wallet connect whenever modal is opened.\n try {\n adapter.connect();\n } catch (error) {\n log.error(`Error while disconnecting to wallet connect in core`, error);\n }\n }\n if (\n !visibility &&\n this.status === ADAPTER_STATUS.CONNECTED &&\n (walletConnectStatus === ADAPTER_STATUS.READY || walletConnectStatus === ADAPTER_STATUS.CONNECTING)\n ) {\n log.debug(\"this stops wc adapter from trying to reconnect once proposal expires\");\n adapter.status = ADAPTER_STATUS.READY;\n }\n }\n });\n }\n}\n"],"names":["defaultSolanaDappModalConfig","chainNamespace","CHAIN_NAMESPACES","SOLANA","adapters","SOLANA_ADAPTERS","TORUS_SOLANA","label","showOnModal","showOnMobile","showOnDesktop","OPENLOGIN","PHANTOM","defaultEvmDappModalConfig","EIP155","EVM_ADAPTERS","TORUS_EVM","METAMASK","WALLET_CONNECT_V2","defaultSolanaWalletModalConfig","defaultEvmWalletModalConfig","defaultOtherModalConfig","OTHER","getPrivateKeyProvider","chainConfig","SolanaPrivateKeyProvider","config","EthereumPrivateKeyProvider","CommonPrivateKeyProvider","Error","getDefaultAdapterModule","params","name","customChainConfig","clientId","sessionTime","web3AuthNetwork","uiConfig","Object","values","includes","finalChainConfig","_objectSpread","getChainConfig","chainId","WALLET_ADAPTERS","TorusWalletAdapter","adapter","SolanaWalletAdapter","MetamaskAdapter","PhantomAdapter","WalletConnectV2Adapter","adapterSettings","walletConnectInitOptions","projectId","OpenloginAdapter","getOpenloginDefaultOptions","privateKeyProvider","defaultOptions","network","whiteLabel","Web3Auth","Web3AuthNoModal","constructor","options","_defineProperty","providedChainConfig","authMode","modalConfig","defaultLanguage","getUserLanguage","mode","loginModal","LoginModal","adapterListener","subscribeToLoginModalEvents","initModal","checkInitRequirements","allAdapters","Set","keys","walletAdapters","adapterConfigurationPromises","map","adapterName","_this$modalConfig$ada","_params$modalConfig","_this$modalConfig$ada2","_this$modalConfig$ada3","adapterConfig","log","debug","ad","type","ADAPTER_CATEGORY","IN_APP","EXTERNAL","cachedAdapter","_this$modalConfig$ada4","setAdapterSettings","chainConfigProxy","_this$coreOptions$cha","coreOptions","openloginAdapter","currentPrivateKeyProvider","adapterNames","Promise","all","hasInAppWallets","some","_this$modalConfig$ada5","_this$modalConfig$ada6","_adapter$name","loginMethods","mergedLoginMethods","getAdapterSocialLogins","method","initPromises","subscribeToAdapterEvents","status","ADAPTER_STATUS","NOT_READY","init","autoConnect","initializeInAppWallet","error","commonJRPCProvider","CommonJRPCProvider","getProviderInstance","READY","hasExternalWallets","_this$walletAdapters$","_this$modalConfig$ada7","initExternalWalletContainer","initExternalWalletAdapters","showExternalWalletsOnly","connect","connectedAdapterName","CONNECTED","provider","open","resolve","reject","once","ADAPTER_EVENTS","ERRORED","err","LOGIN_MODAL_EVENTS","MODAL_VISIBILITY","visibility","externalWalletsInitialized","adaptersConfig","forEach","then","addWalletLogins","undefined","catch","info","_adapterName","_this$options$uiConfi","_this$options$uiConfi2","_this$options$uiConfi3","addSocialLogins","loginMethodsOrder","OPENLOGIN_PROVIDERS","loginGridCol","primaryButton","on","LOGIN","connectTo","loginParams","INIT_EXTERNAL_WALLETS","DISCONNECT","logout","emit","walletConnectStatus","CONNECTING"],"mappings":"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"}
1
+ {"version":3,"file":"modal.esm.js","sources":["../src/config.ts","../src/modalManager.ts"],"sourcesContent":["import { CHAIN_NAMESPACES, EVM_ADAPTERS, SOLANA_ADAPTERS } from \"@web3auth/base\";\n\nimport { AdaptersModalConfig } from \"./interface\";\n\nexport const defaultSolanaDappModalConfig: AdaptersModalConfig = {\n chainNamespace: CHAIN_NAMESPACES.SOLANA,\n adapters: {\n [SOLANA_ADAPTERS.TORUS_SOLANA]: {\n label: \"Torus Wallet\",\n showOnModal: true,\n showOnMobile: true,\n showOnDesktop: true,\n },\n [SOLANA_ADAPTERS.OPENLOGIN]: {\n label: \"OpenLogin\",\n showOnModal: true,\n showOnMobile: true,\n showOnDesktop: true,\n },\n [SOLANA_ADAPTERS.PHANTOM]: {\n label: \"Phantom\",\n showOnModal: true,\n showOnMobile: true,\n showOnDesktop: true,\n },\n },\n};\n\nexport const defaultEvmDappModalConfig: AdaptersModalConfig = {\n chainNamespace: CHAIN_NAMESPACES.EIP155,\n adapters: {\n [EVM_ADAPTERS.TORUS_EVM]: {\n label: \"Torus Wallet\",\n showOnModal: true,\n showOnMobile: true,\n showOnDesktop: true,\n },\n [EVM_ADAPTERS.METAMASK]: {\n label: \"MetaMask\",\n showOnModal: true,\n showOnMobile: true,\n showOnDesktop: true,\n },\n [EVM_ADAPTERS.OPENLOGIN]: {\n label: \"OpenLogin\",\n showOnModal: true,\n showOnMobile: true,\n showOnDesktop: true,\n },\n [EVM_ADAPTERS.WALLET_CONNECT_V2]: {\n label: \"Wallet Connect\",\n showOnModal: true,\n showOnMobile: true,\n showOnDesktop: true,\n },\n },\n};\n\nexport const defaultSolanaWalletModalConfig: AdaptersModalConfig = {\n chainNamespace: CHAIN_NAMESPACES.SOLANA,\n adapters: {\n [SOLANA_ADAPTERS.OPENLOGIN]: {\n label: \"OpenLogin\",\n showOnModal: true,\n showOnMobile: true,\n showOnDesktop: true,\n },\n },\n};\n\nexport const defaultEvmWalletModalConfig: AdaptersModalConfig = {\n chainNamespace: CHAIN_NAMESPACES.EIP155,\n adapters: {\n [EVM_ADAPTERS.OPENLOGIN]: {\n label: \"OpenLogin\",\n showOnModal: true,\n showOnMobile: true,\n showOnDesktop: true,\n },\n },\n};\n\nexport const defaultOtherModalConfig: AdaptersModalConfig = {\n chainNamespace: CHAIN_NAMESPACES.OTHER,\n adapters: {\n [EVM_ADAPTERS.OPENLOGIN]: {\n label: \"OpenLogin\",\n showOnModal: true,\n showOnMobile: true,\n showOnDesktop: true,\n },\n },\n};\n","import {\n ADAPTER_CATEGORY,\n ADAPTER_EVENTS,\n ADAPTER_STATUS,\n BaseAdapterConfig,\n CHAIN_NAMESPACES,\n CustomChainConfig,\n getChainConfig,\n IProvider,\n log,\n LoginMethodConfig,\n WALLET_ADAPTER_TYPE,\n WALLET_ADAPTERS,\n WalletInitializationError,\n Web3AuthNoModalOptions,\n} from \"@web3auth/base\";\nimport { CommonJRPCProvider } from \"@web3auth/base-provider\";\nimport { Web3AuthNoModal } from \"@web3auth/no-modal\";\nimport type { OpenloginAdapter } from \"@web3auth/openlogin-adapter\";\nimport { getAdapterSocialLogins, getUserLanguage, LOGIN_MODAL_EVENTS, LoginModal, OPENLOGIN_PROVIDERS, UIConfig } from \"@web3auth/ui\";\nimport type { WalletConnectV2Adapter } from \"@web3auth/wallet-connect-v2-adapter\";\n\nimport {\n defaultEvmDappModalConfig,\n defaultEvmWalletModalConfig,\n defaultOtherModalConfig,\n defaultSolanaDappModalConfig,\n defaultSolanaWalletModalConfig,\n} from \"./config\";\nimport { AdaptersModalConfig, IWeb3AuthModal, ModalConfig } from \"./interface\";\n\nexport interface Web3AuthOptions extends Web3AuthNoModalOptions {\n /**\n * web3auth instance provides different adapters for different type of usages. If you are dapp and want to\n * use external wallets like metamask, then you can use the `DAPP` authMode.\n * If you are a wallet and only want to use you own wallet implementations along with openlogin,\n * then you should use `WALLET` authMode.\n *\n * @defaultValue `DAPP`\n */\n authMode?: \"DAPP\" | \"WALLET\";\n /**\n * Config for configuring modal ui display properties\n */\n uiConfig?: Omit<UIConfig, \"adapterListener\">;\n}\n\nexport class Web3Auth extends Web3AuthNoModal implements IWeb3AuthModal {\n public loginModal: LoginModal;\n\n readonly options: Web3AuthOptions;\n\n private modalConfig: AdaptersModalConfig = defaultEvmDappModalConfig;\n\n constructor(options: Web3AuthOptions) {\n super(options);\n this.options = { ...options };\n const providedChainConfig = this.options.chainConfig;\n if (providedChainConfig.chainNamespace === CHAIN_NAMESPACES.SOLANA) {\n if (options.authMode === \"WALLET\") {\n // default config for solana wallet modal\n this.modalConfig = defaultSolanaWalletModalConfig;\n } else {\n // default config for solana dapp modal\n this.modalConfig = defaultSolanaDappModalConfig;\n }\n } else if (providedChainConfig.chainNamespace === CHAIN_NAMESPACES.EIP155) {\n if (options.authMode === \"WALLET\") {\n // default config for evm wallet modal\n this.modalConfig = defaultEvmWalletModalConfig;\n } else {\n // default config for evm dapp modal\n this.modalConfig = defaultEvmDappModalConfig;\n }\n } else if (providedChainConfig.chainNamespace === CHAIN_NAMESPACES.OTHER) {\n this.modalConfig = defaultOtherModalConfig;\n } else {\n throw new Error(`Invalid chainNamespace provided: ${providedChainConfig.chainNamespace}`);\n }\n\n if (!this.options.uiConfig) this.options.uiConfig = {};\n if (!this.options.uiConfig.defaultLanguage) this.options.uiConfig.defaultLanguage = getUserLanguage(this.options.uiConfig.defaultLanguage);\n if (!this.options.uiConfig.mode) this.options.uiConfig.mode = \"auto\";\n\n this.loginModal = new LoginModal({\n ...this.options.uiConfig,\n adapterListener: this,\n });\n this.subscribeToLoginModalEvents();\n }\n\n public async initModal(params?: { modalConfig?: Record<WALLET_ADAPTER_TYPE, ModalConfig> }): Promise<void> {\n super.checkInitRequirements();\n await this.loginModal.initModal();\n const providedChainConfig = this.options.chainConfig;\n // TODO: get stuff from dashboard here\n // merge default adapters with the custom configured adapters.\n const allAdapters = [...new Set([...Object.keys(this.modalConfig.adapters || {}), ...Object.keys(this.walletAdapters)])];\n\n const adapterConfigurationPromises = allAdapters.map(async (adapterName) => {\n // start with the default config of adapter.\n let adapterConfig = this.modalConfig.adapters?.[adapterName] || {\n label: adapterName,\n showOnModal: true,\n showOnMobile: true,\n showOnDesktop: true,\n };\n\n // override the default config of adapter if some config is being provided by the user.\n if (params?.modalConfig?.[adapterName]) {\n adapterConfig = { ...adapterConfig, ...params.modalConfig[adapterName] };\n }\n (this.modalConfig.adapters as Record<WALLET_ADAPTER_TYPE, ModalConfig>)[adapterName] = adapterConfig as ModalConfig;\n\n // check if adapter is configured/added by user and exist in walletAdapters map.\n const adapter = this.walletAdapters[adapterName];\n log.debug(\"adapter config\", adapterName, this.modalConfig.adapters?.[adapterName].showOnModal, adapter);\n\n // if adapter is not custom configured then check if it is available in default adapters.\n // and if adapter is not hidden by user\n if (!adapter && this.modalConfig.adapters?.[adapterName].showOnModal) {\n // Adapters to be shown on modal should be pre-configured.\n throw WalletInitializationError.invalidParams(`Adapter ${adapterName} is not configured`);\n } else if (adapter?.type === ADAPTER_CATEGORY.IN_APP || adapter?.type === ADAPTER_CATEGORY.EXTERNAL || adapterName === this.cachedAdapter) {\n if (!this.modalConfig.adapters?.[adapterName].showOnModal) return;\n // add client id to adapter, same web3auth client id can be used in adapter.\n // this id is being overridden if user is also passing client id in adapter's constructor.\n this.walletAdapters[adapterName].setAdapterSettings({\n clientId: this.options.clientId,\n sessionTime: this.options.sessionTime,\n web3AuthNetwork: this.options.web3AuthNetwork,\n useCoreKitKey: this.coreOptions.useCoreKitKey,\n });\n\n // if adapter doesn't have any chainConfig then we will set the chainConfig based of passed chainNamespace\n // and chainNamespace.\n if (!adapter.chainConfigProxy) {\n const chainConfig = {\n ...getChainConfig(providedChainConfig.chainNamespace, this.coreOptions.chainConfig?.chainId),\n ...this.coreOptions.chainConfig,\n } as CustomChainConfig;\n this.walletAdapters[adapterName].setAdapterSettings({ chainConfig });\n }\n\n if (adapterName === WALLET_ADAPTERS.OPENLOGIN) {\n const openloginAdapter = this.walletAdapters[adapterName] as OpenloginAdapter;\n if (this.coreOptions.privateKeyProvider) {\n if (openloginAdapter.currentChainNamespace !== this.coreOptions.privateKeyProvider.currentChainConfig.chainNamespace) {\n throw WalletInitializationError.incompatibleChainNameSpace(\n \"private key provider is not compatible with provided chainNamespace for openlogin adapter\"\n );\n }\n openloginAdapter.setAdapterSettings({ privateKeyProvider: this.coreOptions.privateKeyProvider });\n }\n openloginAdapter.setAdapterSettings({ whiteLabel: this.options.uiConfig });\n if (!openloginAdapter.privateKeyProvider) {\n throw WalletInitializationError.invalidParams(\"privateKeyProvider is required for openlogin adapter\");\n }\n } else if (adapterName === WALLET_ADAPTERS.WALLET_CONNECT_V2) {\n const walletConnectAdapter = this.walletAdapters[adapterName] as WalletConnectV2Adapter;\n walletConnectAdapter.setAdapterSettings({\n adapterSettings: {\n walletConnectInitOptions: {\n // Using a default wallet connect project id for web3auth modal integration\n projectId: \"d3c63f19f9582f8ba48e982057eb096b\", // TODO: get from dashboard\n },\n },\n });\n }\n\n return adapterName;\n }\n });\n\n const adapterNames = await Promise.all(adapterConfigurationPromises);\n const hasInAppWallets = Object.values(this.walletAdapters).some((adapter) => {\n if (adapter.type !== ADAPTER_CATEGORY.IN_APP) return false;\n if (this.modalConfig.adapters?.[adapter.name]?.showOnModal !== true) return false;\n if (!this.modalConfig.adapters?.[adapter.name]?.loginMethods) return true;\n const mergedLoginMethods = getAdapterSocialLogins(\n adapter.name,\n (this.modalConfig.adapters as Record<WALLET_ADAPTER_TYPE, ModalConfig>)[adapter.name]?.loginMethods\n );\n if (Object.values(mergedLoginMethods).some((method: LoginMethodConfig[keyof LoginMethodConfig]) => method.showOnModal)) return true;\n return false;\n });\n log.debug(hasInAppWallets, this.walletAdapters, adapterNames, \"hasInAppWallets\");\n\n // Now, initialize the adapters.\n const initPromises = adapterNames.map(async (adapterName) => {\n if (!adapterName) return;\n try {\n const adapter = this.walletAdapters[adapterName];\n // only initialize a external adapter here if it is a cached adapter.\n if (this.cachedAdapter !== adapterName && adapter.type === ADAPTER_CATEGORY.EXTERNAL) {\n return;\n }\n // in-app wallets or cached wallet (being connected or already connected) are initialized first.\n // if adapter is configured thn only initialize in app or cached adapter.\n // external wallets are initialized on INIT_EXTERNAL_WALLET event.\n this.subscribeToAdapterEvents(adapter);\n if (adapter.status === ADAPTER_STATUS.NOT_READY) await adapter.init({ autoConnect: this.cachedAdapter === adapterName });\n // note: not adding cachedWallet to modal if it is external wallet.\n // adding it later if no in-app wallets are available.\n if (adapter.type === ADAPTER_CATEGORY.IN_APP) {\n this.initializeInAppWallet(adapterName);\n }\n } catch (error) {\n log.error(error, \"error while initializing adapter\");\n }\n });\n\n this.commonJRPCProvider = await CommonJRPCProvider.getProviderInstance({ chainConfig: this.coreOptions.chainConfig as CustomChainConfig });\n this.status = ADAPTER_STATUS.READY;\n await Promise.all(initPromises);\n\n const hasExternalWallets = allAdapters.some((adapterName) => {\n return this.walletAdapters[adapterName]?.type === ADAPTER_CATEGORY.EXTERNAL && this.modalConfig.adapters?.[adapterName].showOnModal;\n });\n\n if (hasExternalWallets) {\n this.loginModal.initExternalWalletContainer();\n }\n\n // variable to check if we have any in app wallets\n // currently all default in app and external wallets can be hidden or shown based on config.\n if (!hasInAppWallets && hasExternalWallets) {\n // if no in app wallet is available then initialize external wallets in modal\n await this.initExternalWalletAdapters(false, { showExternalWalletsOnly: true });\n }\n }\n\n public async connect(): Promise<IProvider | null> {\n // if (!this.loginModal.initialized) throw new Error(\"Login modal is not initialized\");\n // if already connected return provider\n if (this.connectedAdapterName && this.status === ADAPTER_STATUS.CONNECTED && this.provider) return this.provider;\n this.loginModal.open();\n return new Promise((resolve, reject) => {\n this.once(ADAPTER_EVENTS.CONNECTED, () => {\n return resolve(this.provider);\n });\n this.once(ADAPTER_EVENTS.ERRORED, (err: unknown) => {\n return reject(err);\n });\n this.once(LOGIN_MODAL_EVENTS.MODAL_VISIBILITY, (visibility: boolean) => {\n // modal is closed but user is not connected to any wallet.\n if (!visibility && this.status !== ADAPTER_STATUS.CONNECTED) {\n return reject(new Error(\"User closed the modal\"));\n }\n });\n });\n }\n\n private async initExternalWalletAdapters(externalWalletsInitialized: boolean, options?: { showExternalWalletsOnly: boolean }): Promise<void> {\n if (externalWalletsInitialized) return;\n const adaptersConfig: Record<string, BaseAdapterConfig> = {};\n Object.keys(this.walletAdapters).forEach(async (adapterName) => {\n const adapter = this.walletAdapters[adapterName];\n if (adapter?.type === ADAPTER_CATEGORY.EXTERNAL) {\n log.debug(\"init external wallet\", this.cachedAdapter, adapterName);\n this.subscribeToAdapterEvents(adapter);\n // we are not initializing cached adapter here as it is already being initialized in initModal before.\n if (this.cachedAdapter === adapterName) {\n return;\n }\n if (adapter.status === ADAPTER_STATUS.NOT_READY) {\n await adapter\n .init({ autoConnect: this.cachedAdapter === adapterName })\n .then(() => {\n adaptersConfig[adapterName] = (this.modalConfig.adapters as Record<WALLET_ADAPTER_TYPE, ModalConfig>)[adapterName];\n this.loginModal.addWalletLogins(adaptersConfig, { showExternalWalletsOnly: !!options?.showExternalWalletsOnly });\n return undefined;\n })\n .catch((error) => log.error(error, \"error while initializing adapter\"));\n } else if (adapter.status === ADAPTER_STATUS.READY) {\n adaptersConfig[adapterName] = (this.modalConfig.adapters as Record<WALLET_ADAPTER_TYPE, ModalConfig>)[adapterName];\n this.loginModal.addWalletLogins(adaptersConfig, { showExternalWalletsOnly: !!options?.showExternalWalletsOnly });\n }\n }\n });\n }\n\n private initializeInAppWallet(adapterName: string): void {\n log.info(\"adapterInitResults\", adapterName);\n if (this.walletAdapters[adapterName].type === ADAPTER_CATEGORY.IN_APP) {\n this.loginModal.addSocialLogins(\n adapterName,\n getAdapterSocialLogins(adapterName, (this.modalConfig.adapters as Record<WALLET_ADAPTER_TYPE, ModalConfig>)[adapterName]?.loginMethods),\n this.options.uiConfig?.loginMethodsOrder || OPENLOGIN_PROVIDERS,\n {\n ...this.options.uiConfig,\n loginGridCol: this.options.uiConfig?.loginGridCol || 3,\n primaryButton: this.options.uiConfig?.primaryButton || \"socialLogin\",\n }\n );\n }\n }\n\n private subscribeToLoginModalEvents(): void {\n this.loginModal.on(LOGIN_MODAL_EVENTS.LOGIN, async (params: { adapter: WALLET_ADAPTER_TYPE; loginParams: unknown }) => {\n try {\n await this.connectTo<unknown>(params.adapter, params.loginParams);\n } catch (error) {\n log.error(`Error while connecting to adapter: ${params.adapter}`, error);\n }\n });\n this.loginModal.on(LOGIN_MODAL_EVENTS.INIT_EXTERNAL_WALLETS, async (params: { externalWalletsInitialized: boolean }) => {\n await this.initExternalWalletAdapters(params.externalWalletsInitialized);\n });\n this.loginModal.on(LOGIN_MODAL_EVENTS.DISCONNECT, async () => {\n try {\n await this.logout();\n } catch (error) {\n log.error(`Error while disconnecting`, error);\n }\n });\n this.loginModal.on(LOGIN_MODAL_EVENTS.MODAL_VISIBILITY, async (visibility: boolean) => {\n log.debug(\"is login modal visible\", visibility);\n this.emit(LOGIN_MODAL_EVENTS.MODAL_VISIBILITY, visibility);\n const adapter = this.walletAdapters[WALLET_ADAPTERS.WALLET_CONNECT_V2];\n if (adapter) {\n const walletConnectStatus = adapter?.status;\n log.debug(\"trying refreshing wc session\", visibility, walletConnectStatus);\n if (visibility && (walletConnectStatus === ADAPTER_STATUS.READY || walletConnectStatus === ADAPTER_STATUS.CONNECTING)) {\n log.debug(\"refreshing wc session\");\n\n // refreshing session for wallet connect whenever modal is opened.\n try {\n adapter.connect();\n } catch (error) {\n log.error(`Error while disconnecting to wallet connect in core`, error);\n }\n }\n if (\n !visibility &&\n this.status === ADAPTER_STATUS.CONNECTED &&\n (walletConnectStatus === ADAPTER_STATUS.READY || walletConnectStatus === ADAPTER_STATUS.CONNECTING)\n ) {\n log.debug(\"this stops wc adapter from trying to reconnect once proposal expires\");\n adapter.status = ADAPTER_STATUS.READY;\n }\n }\n });\n }\n}\n"],"names":["defaultSolanaDappModalConfig","chainNamespace","CHAIN_NAMESPACES","SOLANA","adapters","SOLANA_ADAPTERS","TORUS_SOLANA","label","showOnModal","showOnMobile","showOnDesktop","OPENLOGIN","PHANTOM","defaultEvmDappModalConfig","EIP155","EVM_ADAPTERS","TORUS_EVM","METAMASK","WALLET_CONNECT_V2","defaultSolanaWalletModalConfig","defaultEvmWalletModalConfig","defaultOtherModalConfig","OTHER","Web3Auth","Web3AuthNoModal","constructor","options","_defineProperty","_objectSpread","providedChainConfig","chainConfig","authMode","modalConfig","Error","uiConfig","defaultLanguage","getUserLanguage","mode","loginModal","LoginModal","adapterListener","subscribeToLoginModalEvents","initModal","params","checkInitRequirements","allAdapters","Set","Object","keys","walletAdapters","adapterConfigurationPromises","map","adapterName","_this$modalConfig$ada","_params$modalConfig","_this$modalConfig$ada2","_this$modalConfig$ada3","adapterConfig","adapter","log","debug","WalletInitializationError","invalidParams","type","ADAPTER_CATEGORY","IN_APP","EXTERNAL","cachedAdapter","_this$modalConfig$ada4","setAdapterSettings","clientId","sessionTime","web3AuthNetwork","useCoreKitKey","coreOptions","chainConfigProxy","_this$coreOptions$cha","getChainConfig","chainId","WALLET_ADAPTERS","openloginAdapter","privateKeyProvider","currentChainNamespace","currentChainConfig","incompatibleChainNameSpace","whiteLabel","walletConnectAdapter","adapterSettings","walletConnectInitOptions","projectId","adapterNames","Promise","all","hasInAppWallets","values","some","_this$modalConfig$ada5","_this$modalConfig$ada6","_adapter$name","name","loginMethods","mergedLoginMethods","getAdapterSocialLogins","method","initPromises","subscribeToAdapterEvents","status","ADAPTER_STATUS","NOT_READY","init","autoConnect","initializeInAppWallet","error","commonJRPCProvider","CommonJRPCProvider","getProviderInstance","READY","hasExternalWallets","_this$walletAdapters$","_this$modalConfig$ada7","initExternalWalletContainer","initExternalWalletAdapters","showExternalWalletsOnly","connect","connectedAdapterName","CONNECTED","provider","open","resolve","reject","once","ADAPTER_EVENTS","ERRORED","err","LOGIN_MODAL_EVENTS","MODAL_VISIBILITY","visibility","externalWalletsInitialized","adaptersConfig","forEach","then","addWalletLogins","undefined","catch","info","_adapterName","_this$options$uiConfi","_this$options$uiConfi2","_this$options$uiConfi3","addSocialLogins","loginMethodsOrder","OPENLOGIN_PROVIDERS","loginGridCol","primaryButton","on","LOGIN","connectTo","loginParams","INIT_EXTERNAL_WALLETS","DISCONNECT","logout","emit","walletConnectStatus","CONNECTING"],"mappings":"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"}