@web3auth/modal 8.12.6 → 9.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,12 +1,11 @@
1
- import { CHAIN_NAMESPACES, SOLANA_ADAPTERS, EVM_ADAPTERS, WalletInitializationError, fetchProjectConfig, log, WALLET_ADAPTERS, getChainConfig, ADAPTER_CATEGORY, ADAPTER_STATUS, ADAPTER_EVENTS } from '@web3auth/base';
1
+ import { CHAIN_NAMESPACES, SOLANA_ADAPTERS, EVM_ADAPTERS, cloneDeep, WalletInitializationError, fetchProjectConfig, log, fetchWalletRegistry, WALLET_ADAPTERS, getChainConfig, ADAPTER_CATEGORY, 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
4
  import { CommonJRPCProvider } from '@web3auth/base-provider';
5
5
  import { Web3AuthNoModal } from '@web3auth/no-modal';
6
6
  import { LOGIN_PROVIDER, getOpenloginDefaultOptions, OpenloginAdapter } from '@web3auth/openlogin-adapter';
7
7
  import { getUserLanguage, LoginModal, capitalizeFirstLetter, getAdapterSocialLogins, LOGIN_MODAL_EVENTS, OPENLOGIN_PROVIDERS } from '@web3auth/ui';
8
- import clonedeep from 'lodash.clonedeep';
9
- import merge from 'lodash.merge';
8
+ import deepmerge from 'deepmerge';
10
9
 
11
10
  const defaultSolanaDappModalConfig = {
12
11
  chainNamespace: CHAIN_NAMESPACES.SOLANA,
@@ -93,13 +92,14 @@ const defaultOtherModalConfig = {
93
92
  }
94
93
  }
95
94
  };
95
+ const walletRegistryUrl = "https://assets.web3auth.io/v1/wallet-registry.json";
96
96
 
97
97
  class Web3Auth extends Web3AuthNoModal {
98
98
  constructor(options) {
99
99
  super(options);
100
100
  _defineProperty(this, "loginModal", void 0);
101
101
  _defineProperty(this, "options", void 0);
102
- _defineProperty(this, "modalConfig", defaultOtherModalConfig);
102
+ _defineProperty(this, "modalConfig", cloneDeep(defaultOtherModalConfig));
103
103
  this.options = _objectSpread({}, options);
104
104
  if (!this.options.uiConfig) this.options.uiConfig = {};
105
105
  if (!this.coreOptions.privateKeyProvider) throw WalletInitializationError.invalidParams("privateKeyProvider is required");
@@ -120,16 +120,25 @@ class Web3Auth extends Web3AuthNoModal {
120
120
  const {
121
121
  whitelabel
122
122
  } = projectConfig;
123
- this.options.uiConfig = merge(clonedeep(whitelabel), this.options.uiConfig);
123
+ this.options.uiConfig = deepmerge(cloneDeep(whitelabel), this.options.uiConfig);
124
124
  if (!this.options.uiConfig.defaultLanguage) this.options.uiConfig.defaultLanguage = getUserLanguage(this.options.uiConfig.defaultLanguage);
125
125
  if (!this.options.uiConfig.mode) this.options.uiConfig.mode = "light";
126
+ let walletRegistry = {};
127
+ try {
128
+ walletRegistry = await fetchWalletRegistry(walletRegistryUrl);
129
+ } catch (e) {
130
+ log.error("Failed to fetch wallet registry", e);
131
+ }
126
132
  this.loginModal = new LoginModal(_objectSpread(_objectSpread({}, this.options.uiConfig), {}, {
127
- adapterListener: this
133
+ adapterListener: this,
134
+ chainNamespace: this.options.chainConfig.chainNamespace,
135
+ walletRegistry
128
136
  }));
129
137
  this.subscribeToLoginModalEvents();
130
138
  const {
131
139
  sms_otp_enabled: smsOtpEnabled,
132
- whitelist
140
+ whitelist,
141
+ key_export_enabled: keyExportEnabled
133
142
  } = projectConfig;
134
143
  if (smsOtpEnabled !== undefined) {
135
144
  var _params;
@@ -149,7 +158,7 @@ class Web3Auth extends Web3AuthNoModal {
149
158
  if (!((_params = params) !== null && _params !== void 0 && _params.modalConfig)) params = {
150
159
  modalConfig: {}
151
160
  };
152
- params.modalConfig = merge(clonedeep(params.modalConfig), adapterConfig);
161
+ params.modalConfig = deepmerge(cloneDeep(params.modalConfig), adapterConfig);
153
162
  }
154
163
  await this.loginModal.initModal();
155
164
  const providedChainConfig = this.options.chainConfig;
@@ -360,6 +369,11 @@ class Web3Auth extends Web3AuthNoModal {
360
369
  this.commonJRPCProvider = await CommonJRPCProvider.getProviderInstance({
361
370
  chainConfig: this.coreOptions.chainConfig
362
371
  });
372
+ if (typeof keyExportEnabled === "boolean") {
373
+ this.coreOptions.privateKeyProvider.setKeyExportFlag(keyExportEnabled);
374
+ // dont know if we need to do this.
375
+ this.commonJRPCProvider.setKeyExportFlag(keyExportEnabled);
376
+ }
363
377
  await Promise.all(initPromises);
364
378
  if (this.status === ADAPTER_STATUS.NOT_READY) {
365
379
  this.status = ADAPTER_STATUS.READY;
@@ -418,14 +432,20 @@ class Web3Auth extends Web3AuthNoModal {
418
432
  await adapter.init({
419
433
  autoConnect: this.cachedAdapter === adapterName
420
434
  }).then(() => {
421
- adaptersConfig[adapterName] = this.modalConfig.adapters[adapterName];
435
+ const adapterModalConfig = this.modalConfig.adapters[adapterName];
436
+ adaptersConfig[adapterName] = _objectSpread(_objectSpread({}, adapterModalConfig), {}, {
437
+ isInjected: adapter.isInjected
438
+ });
422
439
  this.loginModal.addWalletLogins(adaptersConfig, {
423
440
  showExternalWalletsOnly: !!(options !== null && options !== void 0 && options.showExternalWalletsOnly)
424
441
  });
425
442
  return undefined;
426
443
  }).catch(error => log.error(error, "error while initializing adapter", adapterName));
427
444
  } else if (adapter.status === ADAPTER_STATUS.READY) {
428
- adaptersConfig[adapterName] = this.modalConfig.adapters[adapterName];
445
+ const adapterModalConfig = this.modalConfig.adapters[adapterName];
446
+ adaptersConfig[adapterName] = _objectSpread(_objectSpread({}, adapterModalConfig), {}, {
447
+ isInjected: adapter.isInjected
448
+ });
429
449
  this.loginModal.addWalletLogins(adaptersConfig, {
430
450
  showExternalWalletsOnly: !!(options !== null && options !== void 0 && options.showExternalWalletsOnly)
431
451
  });
@@ -487,4 +507,4 @@ class Web3Auth extends Web3AuthNoModal {
487
507
  }
488
508
  }
489
509
 
490
- export { Web3Auth, defaultEvmDappModalConfig, defaultEvmWalletModalConfig, defaultOtherModalConfig, defaultSolanaDappModalConfig, defaultSolanaWalletModalConfig };
510
+ export { Web3Auth, defaultEvmDappModalConfig, defaultEvmWalletModalConfig, defaultOtherModalConfig, defaultSolanaDappModalConfig, defaultSolanaWalletModalConfig, walletRegistryUrl };