@web3auth/modal 8.12.7 → 9.0.0-alpha.1

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.cjs.js CHANGED
@@ -9,6 +9,7 @@
9
9
  /* harmony export */ Gu: () => (/* binding */ defaultSolanaDappModalConfig),
10
10
  /* harmony export */ KT: () => (/* binding */ defaultSolanaWalletModalConfig),
11
11
  /* harmony export */ Lu: () => (/* binding */ defaultOtherModalConfig),
12
+ /* harmony export */ e4: () => (/* binding */ walletRegistryUrl),
12
13
  /* harmony export */ eA: () => (/* binding */ defaultEvmWalletModalConfig),
13
14
  /* harmony export */ g2: () => (/* binding */ defaultEvmDappModalConfig)
14
15
  /* harmony export */ });
@@ -24,14 +25,8 @@ const defaultSolanaDappModalConfig = {
24
25
  showOnMobile: true,
25
26
  showOnDesktop: true
26
27
  },
27
- [_web3auth_base__WEBPACK_IMPORTED_MODULE_0__.SOLANA_ADAPTERS.OPENLOGIN]: {
28
- label: "OpenLogin",
29
- showOnModal: true,
30
- showOnMobile: true,
31
- showOnDesktop: true
32
- },
33
- [_web3auth_base__WEBPACK_IMPORTED_MODULE_0__.SOLANA_ADAPTERS.PHANTOM]: {
34
- label: "Phantom",
28
+ [_web3auth_base__WEBPACK_IMPORTED_MODULE_0__.SOLANA_ADAPTERS.AUTH]: {
29
+ label: "Auth",
35
30
  showOnModal: true,
36
31
  showOnMobile: true,
37
32
  showOnDesktop: true
@@ -47,14 +42,8 @@ const defaultEvmDappModalConfig = {
47
42
  showOnMobile: true,
48
43
  showOnDesktop: true
49
44
  },
50
- [_web3auth_base__WEBPACK_IMPORTED_MODULE_0__.EVM_ADAPTERS.METAMASK]: {
51
- label: "MetaMask",
52
- showOnModal: true,
53
- showOnMobile: true,
54
- showOnDesktop: true
55
- },
56
- [_web3auth_base__WEBPACK_IMPORTED_MODULE_0__.EVM_ADAPTERS.OPENLOGIN]: {
57
- label: "OpenLogin",
45
+ [_web3auth_base__WEBPACK_IMPORTED_MODULE_0__.EVM_ADAPTERS.AUTH]: {
46
+ label: "Auth",
58
47
  showOnModal: true,
59
48
  showOnMobile: true,
60
49
  showOnDesktop: true
@@ -70,8 +59,8 @@ const defaultEvmDappModalConfig = {
70
59
  const defaultSolanaWalletModalConfig = {
71
60
  chainNamespace: _web3auth_base__WEBPACK_IMPORTED_MODULE_0__.CHAIN_NAMESPACES.SOLANA,
72
61
  adapters: {
73
- [_web3auth_base__WEBPACK_IMPORTED_MODULE_0__.SOLANA_ADAPTERS.OPENLOGIN]: {
74
- label: "OpenLogin",
62
+ [_web3auth_base__WEBPACK_IMPORTED_MODULE_0__.SOLANA_ADAPTERS.AUTH]: {
63
+ label: "Auth",
75
64
  showOnModal: true,
76
65
  showOnMobile: true,
77
66
  showOnDesktop: true
@@ -81,8 +70,8 @@ const defaultSolanaWalletModalConfig = {
81
70
  const defaultEvmWalletModalConfig = {
82
71
  chainNamespace: _web3auth_base__WEBPACK_IMPORTED_MODULE_0__.CHAIN_NAMESPACES.EIP155,
83
72
  adapters: {
84
- [_web3auth_base__WEBPACK_IMPORTED_MODULE_0__.EVM_ADAPTERS.OPENLOGIN]: {
85
- label: "OpenLogin",
73
+ [_web3auth_base__WEBPACK_IMPORTED_MODULE_0__.EVM_ADAPTERS.AUTH]: {
74
+ label: "Auth",
86
75
  showOnModal: true,
87
76
  showOnMobile: true,
88
77
  showOnDesktop: true
@@ -92,14 +81,15 @@ const defaultEvmWalletModalConfig = {
92
81
  const defaultOtherModalConfig = {
93
82
  chainNamespace: _web3auth_base__WEBPACK_IMPORTED_MODULE_0__.CHAIN_NAMESPACES.OTHER,
94
83
  adapters: {
95
- [_web3auth_base__WEBPACK_IMPORTED_MODULE_0__.EVM_ADAPTERS.OPENLOGIN]: {
96
- label: "OpenLogin",
84
+ [_web3auth_base__WEBPACK_IMPORTED_MODULE_0__.EVM_ADAPTERS.AUTH]: {
85
+ label: "Auth",
97
86
  showOnModal: true,
98
87
  showOnMobile: true,
99
88
  showOnDesktop: true
100
89
  }
101
90
  }
102
91
  };
92
+ const walletRegistryUrl = "https://assets.web3auth.io/v1/wallet-registry.json";
103
93
 
104
94
  /***/ }),
105
95
 
@@ -110,7 +100,7 @@ const defaultOtherModalConfig = {
110
100
 
111
101
  /***/ }),
112
102
 
113
- /***/ 73:
103
+ /***/ 430:
114
104
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
115
105
 
116
106
  "use strict";
@@ -126,22 +116,19 @@ var objectSpread2_default = /*#__PURE__*/__webpack_require__.n(objectSpread2_nam
126
116
  ;// CONCATENATED MODULE: external "@babel/runtime/helpers/defineProperty"
127
117
  const defineProperty_namespaceObject = require("@babel/runtime/helpers/defineProperty");
128
118
  var defineProperty_default = /*#__PURE__*/__webpack_require__.n(defineProperty_namespaceObject);
119
+ ;// CONCATENATED MODULE: external "@web3auth/auth-adapter"
120
+ const auth_adapter_namespaceObject = require("@web3auth/auth-adapter");
129
121
  // EXTERNAL MODULE: external "@web3auth/base"
130
122
  var base_ = __webpack_require__(377);
131
123
  ;// CONCATENATED MODULE: external "@web3auth/base-provider"
132
124
  const base_provider_namespaceObject = require("@web3auth/base-provider");
133
125
  ;// CONCATENATED MODULE: external "@web3auth/no-modal"
134
126
  const no_modal_namespaceObject = require("@web3auth/no-modal");
135
- ;// CONCATENATED MODULE: external "@web3auth/openlogin-adapter"
136
- const openlogin_adapter_namespaceObject = require("@web3auth/openlogin-adapter");
137
127
  ;// CONCATENATED MODULE: external "@web3auth/ui"
138
128
  const ui_namespaceObject = require("@web3auth/ui");
139
- ;// CONCATENATED MODULE: external "lodash.clonedeep"
140
- const external_lodash_clonedeep_namespaceObject = require("lodash.clonedeep");
141
- var external_lodash_clonedeep_default = /*#__PURE__*/__webpack_require__.n(external_lodash_clonedeep_namespaceObject);
142
- ;// CONCATENATED MODULE: external "lodash.merge"
143
- const external_lodash_merge_namespaceObject = require("lodash.merge");
144
- var external_lodash_merge_default = /*#__PURE__*/__webpack_require__.n(external_lodash_merge_namespaceObject);
129
+ ;// CONCATENATED MODULE: external "deepmerge"
130
+ const external_deepmerge_namespaceObject = require("deepmerge");
131
+ var external_deepmerge_default = /*#__PURE__*/__webpack_require__.n(external_deepmerge_namespaceObject);
145
132
  // EXTERNAL MODULE: ./src/config.ts
146
133
  var config = __webpack_require__(149);
147
134
  ;// CONCATENATED MODULE: ./src/modalManager.ts
@@ -154,13 +141,12 @@ var config = __webpack_require__(149);
154
141
 
155
142
 
156
143
 
157
-
158
144
  class Web3Auth extends no_modal_namespaceObject.Web3AuthNoModal {
159
145
  constructor(options) {
160
146
  super(options);
161
147
  defineProperty_default()(this, "loginModal", void 0);
162
148
  defineProperty_default()(this, "options", void 0);
163
- defineProperty_default()(this, "modalConfig", config/* defaultOtherModalConfig */.Lu);
149
+ defineProperty_default()(this, "modalConfig", (0,base_.cloneDeep)(config/* defaultOtherModalConfig */.Lu));
164
150
  this.options = objectSpread2_default()({}, options);
165
151
  if (!this.options.uiConfig) this.options.uiConfig = {};
166
152
  if (!this.coreOptions.privateKeyProvider) throw base_.WalletInitializationError.invalidParams("privateKeyProvider is required");
@@ -181,25 +167,34 @@ class Web3Auth extends no_modal_namespaceObject.Web3AuthNoModal {
181
167
  const {
182
168
  whitelabel
183
169
  } = projectConfig;
184
- this.options.uiConfig = external_lodash_merge_default()(external_lodash_clonedeep_default()(whitelabel), this.options.uiConfig);
170
+ this.options.uiConfig = external_deepmerge_default()((0,base_.cloneDeep)(whitelabel), this.options.uiConfig);
185
171
  if (!this.options.uiConfig.defaultLanguage) this.options.uiConfig.defaultLanguage = (0,ui_namespaceObject.getUserLanguage)(this.options.uiConfig.defaultLanguage);
186
172
  if (!this.options.uiConfig.mode) this.options.uiConfig.mode = "light";
173
+ let walletRegistry = {};
174
+ try {
175
+ walletRegistry = await (0,base_.fetchWalletRegistry)(config/* walletRegistryUrl */.e4);
176
+ } catch (e) {
177
+ base_.log.error("Failed to fetch wallet registry", e);
178
+ }
187
179
  this.loginModal = new ui_namespaceObject.LoginModal(objectSpread2_default()(objectSpread2_default()({}, this.options.uiConfig), {}, {
188
- adapterListener: this
180
+ adapterListener: this,
181
+ chainNamespace: this.options.chainConfig.chainNamespace,
182
+ walletRegistry
189
183
  }));
190
184
  this.subscribeToLoginModalEvents();
191
185
  const {
192
186
  sms_otp_enabled: smsOtpEnabled,
193
- whitelist
187
+ whitelist,
188
+ key_export_enabled: keyExportEnabled
194
189
  } = projectConfig;
195
190
  if (smsOtpEnabled !== undefined) {
196
191
  var _params;
197
192
  const adapterConfig = {
198
- [base_.WALLET_ADAPTERS.OPENLOGIN]: {
199
- label: base_.WALLET_ADAPTERS.OPENLOGIN,
193
+ [base_.WALLET_ADAPTERS.AUTH]: {
194
+ label: base_.WALLET_ADAPTERS.AUTH,
200
195
  loginMethods: {
201
- [openlogin_adapter_namespaceObject.LOGIN_PROVIDER.SMS_PASSWORDLESS]: {
202
- name: openlogin_adapter_namespaceObject.LOGIN_PROVIDER.SMS_PASSWORDLESS,
196
+ [auth_adapter_namespaceObject.LOGIN_PROVIDER.SMS_PASSWORDLESS]: {
197
+ name: auth_adapter_namespaceObject.LOGIN_PROVIDER.SMS_PASSWORDLESS,
203
198
  showOnModal: smsOtpEnabled,
204
199
  showOnDesktop: smsOtpEnabled,
205
200
  showOnMobile: smsOtpEnabled
@@ -210,7 +205,7 @@ class Web3Auth extends no_modal_namespaceObject.Web3AuthNoModal {
210
205
  if (!((_params = params) !== null && _params !== void 0 && _params.modalConfig)) params = {
211
206
  modalConfig: {}
212
207
  };
213
- params.modalConfig = external_lodash_merge_default()(external_lodash_clonedeep_default()(params.modalConfig), adapterConfig);
208
+ params.modalConfig = external_deepmerge_default()((0,base_.cloneDeep)(params.modalConfig), adapterConfig);
214
209
  }
215
210
  await this.loginModal.initModal();
216
211
  const providedChainConfig = this.options.chainConfig;
@@ -240,9 +235,9 @@ class Web3Auth extends no_modal_namespaceObject.Web3AuthNoModal {
240
235
  // and if adapter is not hidden by user
241
236
  if (!adapter && (_this$modalConfig$ada3 = this.modalConfig.adapters) !== null && _this$modalConfig$ada3 !== void 0 && _this$modalConfig$ada3[adapterName].showOnModal) {
242
237
  // Adapters to be shown on modal should be pre-configured.
243
- if (adapterName === base_.WALLET_ADAPTERS.OPENLOGIN) {
238
+ if (adapterName === base_.WALLET_ADAPTERS.AUTH) {
244
239
  var _this$coreOptions$cha;
245
- const defaultOptions = (0,openlogin_adapter_namespaceObject.getOpenloginDefaultOptions)();
240
+ const defaultOptions = (0,auth_adapter_namespaceObject.getAuthDefaultOptions)();
246
241
  const {
247
242
  clientId,
248
243
  useCoreKitKey,
@@ -255,14 +250,14 @@ class Web3Auth extends no_modal_namespaceObject.Web3AuthNoModal {
255
250
  if (!privateKeyProvider) {
256
251
  throw base_.WalletInitializationError.invalidParams("privateKeyProvider is required");
257
252
  }
258
- const finalOpenloginAdapterSettings = objectSpread2_default()(objectSpread2_default()({}, defaultOptions.adapterSettings), {}, {
253
+ const finalAuthAdapterSettings = objectSpread2_default()(objectSpread2_default()({}, defaultOptions.adapterSettings), {}, {
259
254
  clientId,
260
255
  network: web3AuthNetwork,
261
256
  whiteLabel: this.options.uiConfig
262
257
  });
263
258
  if (smsOtpEnabled !== undefined) {
264
- finalOpenloginAdapterSettings.loginConfig = {
265
- [openlogin_adapter_namespaceObject.LOGIN_PROVIDER.SMS_PASSWORDLESS]: {
259
+ finalAuthAdapterSettings.loginConfig = {
260
+ [auth_adapter_namespaceObject.LOGIN_PROVIDER.SMS_PASSWORDLESS]: {
266
261
  showOnModal: smsOtpEnabled,
267
262
  showOnDesktop: smsOtpEnabled,
268
263
  showOnMobile: smsOtpEnabled,
@@ -271,21 +266,21 @@ class Web3Auth extends no_modal_namespaceObject.Web3AuthNoModal {
271
266
  };
272
267
  }
273
268
  if (whitelist) {
274
- finalOpenloginAdapterSettings.originData = whitelist.signed_urls;
269
+ finalAuthAdapterSettings.originData = whitelist.signed_urls;
275
270
  }
276
271
  if (this.options.uiConfig.uxMode) {
277
- finalOpenloginAdapterSettings.uxMode = this.options.uiConfig.uxMode;
272
+ finalAuthAdapterSettings.uxMode = this.options.uiConfig.uxMode;
278
273
  }
279
- const openloginAdapter = new openlogin_adapter_namespaceObject.OpenloginAdapter(objectSpread2_default()(objectSpread2_default()({}, defaultOptions), {}, {
274
+ const authAdapter = new auth_adapter_namespaceObject.AuthAdapter(objectSpread2_default()(objectSpread2_default()({}, defaultOptions), {}, {
280
275
  clientId,
281
276
  useCoreKitKey,
282
277
  chainConfig: objectSpread2_default()({}, finalChainConfig),
283
- adapterSettings: finalOpenloginAdapterSettings,
278
+ adapterSettings: finalAuthAdapterSettings,
284
279
  sessionTime,
285
280
  web3AuthNetwork,
286
281
  privateKeyProvider
287
282
  }));
288
- this.walletAdapters[adapterName] = openloginAdapter;
283
+ this.walletAdapters[adapterName] = authAdapter;
289
284
  return adapterName;
290
285
  }
291
286
  throw base_.WalletInitializationError.invalidParams(`Adapter ${adapterName} is not configured`);
@@ -310,21 +305,21 @@ class Web3Auth extends no_modal_namespaceObject.Web3AuthNoModal {
310
305
  chainConfig
311
306
  });
312
307
  }
313
- if (adapterName === base_.WALLET_ADAPTERS.OPENLOGIN) {
308
+ if (adapterName === base_.WALLET_ADAPTERS.AUTH) {
314
309
  var _this$options$uiConfi;
315
- const openloginAdapter = this.walletAdapters[adapterName];
310
+ const authAdapter = this.walletAdapters[adapterName];
316
311
  if (this.coreOptions.privateKeyProvider) {
317
- if (openloginAdapter.currentChainNamespace !== this.coreOptions.privateKeyProvider.currentChainConfig.chainNamespace) {
318
- throw base_.WalletInitializationError.incompatibleChainNameSpace("private key provider is not compatible with provided chainNamespace for openlogin adapter");
312
+ if (authAdapter.currentChainNamespace !== this.coreOptions.privateKeyProvider.currentChainConfig.chainNamespace) {
313
+ throw base_.WalletInitializationError.incompatibleChainNameSpace("private key provider is not compatible with provided chainNamespace for auth adapter");
319
314
  }
320
- openloginAdapter.setAdapterSettings({
315
+ authAdapter.setAdapterSettings({
321
316
  privateKeyProvider: this.coreOptions.privateKeyProvider
322
317
  });
323
318
  }
324
319
  if (smsOtpEnabled !== undefined) {
325
- openloginAdapter.setAdapterSettings({
320
+ authAdapter.setAdapterSettings({
326
321
  loginConfig: {
327
- [openlogin_adapter_namespaceObject.LOGIN_PROVIDER.SMS_PASSWORDLESS]: {
322
+ [auth_adapter_namespaceObject.LOGIN_PROVIDER.SMS_PASSWORDLESS]: {
328
323
  showOnModal: smsOtpEnabled,
329
324
  showOnDesktop: smsOtpEnabled,
330
325
  showOnMobile: smsOtpEnabled,
@@ -334,20 +329,20 @@ class Web3Auth extends no_modal_namespaceObject.Web3AuthNoModal {
334
329
  });
335
330
  }
336
331
  if (whitelist) {
337
- openloginAdapter.setAdapterSettings({
332
+ authAdapter.setAdapterSettings({
338
333
  originData: whitelist.signed_urls
339
334
  });
340
335
  }
341
336
  if ((_this$options$uiConfi = this.options.uiConfig) !== null && _this$options$uiConfi !== void 0 && _this$options$uiConfi.uxMode) {
342
- openloginAdapter.setAdapterSettings({
337
+ authAdapter.setAdapterSettings({
343
338
  uxMode: this.options.uiConfig.uxMode
344
339
  });
345
340
  }
346
- openloginAdapter.setAdapterSettings({
341
+ authAdapter.setAdapterSettings({
347
342
  whiteLabel: this.options.uiConfig
348
343
  });
349
- if (!openloginAdapter.privateKeyProvider) {
350
- throw base_.WalletInitializationError.invalidParams("privateKeyProvider is required for openlogin adapter");
344
+ if (!authAdapter.privateKeyProvider) {
345
+ throw base_.WalletInitializationError.invalidParams("privateKeyProvider is required for auth adapter");
351
346
  }
352
347
  } else if (adapterName === base_.WALLET_ADAPTERS.WALLET_CONNECT_V2) {
353
348
  const walletConnectAdapter = this.walletAdapters[adapterName];
@@ -421,6 +416,11 @@ class Web3Auth extends no_modal_namespaceObject.Web3AuthNoModal {
421
416
  this.commonJRPCProvider = await base_provider_namespaceObject.CommonJRPCProvider.getProviderInstance({
422
417
  chainConfig: this.coreOptions.chainConfig
423
418
  });
419
+ if (typeof keyExportEnabled === "boolean") {
420
+ this.coreOptions.privateKeyProvider.setKeyExportFlag(keyExportEnabled);
421
+ // dont know if we need to do this.
422
+ this.commonJRPCProvider.setKeyExportFlag(keyExportEnabled);
423
+ }
424
424
  await Promise.all(initPromises);
425
425
  if (this.status === base_.ADAPTER_STATUS.NOT_READY) {
426
426
  this.status = base_.ADAPTER_STATUS.READY;
@@ -479,14 +479,20 @@ class Web3Auth extends no_modal_namespaceObject.Web3AuthNoModal {
479
479
  await adapter.init({
480
480
  autoConnect: this.cachedAdapter === adapterName
481
481
  }).then(() => {
482
- adaptersConfig[adapterName] = this.modalConfig.adapters[adapterName];
482
+ const adapterModalConfig = this.modalConfig.adapters[adapterName];
483
+ adaptersConfig[adapterName] = objectSpread2_default()(objectSpread2_default()({}, adapterModalConfig), {}, {
484
+ isInjected: adapter.isInjected
485
+ });
483
486
  this.loginModal.addWalletLogins(adaptersConfig, {
484
487
  showExternalWalletsOnly: !!(options !== null && options !== void 0 && options.showExternalWalletsOnly)
485
488
  });
486
489
  return undefined;
487
490
  }).catch(error => base_.log.error(error, "error while initializing adapter", adapterName));
488
491
  } else if (adapter.status === base_.ADAPTER_STATUS.READY) {
489
- adaptersConfig[adapterName] = this.modalConfig.adapters[adapterName];
492
+ const adapterModalConfig = this.modalConfig.adapters[adapterName];
493
+ adaptersConfig[adapterName] = objectSpread2_default()(objectSpread2_default()({}, adapterModalConfig), {}, {
494
+ isInjected: adapter.isInjected
495
+ });
490
496
  this.loginModal.addWalletLogins(adaptersConfig, {
491
497
  showExternalWalletsOnly: !!(options !== null && options !== void 0 && options.showExternalWalletsOnly)
492
498
  });
@@ -498,7 +504,7 @@ class Web3Auth extends no_modal_namespaceObject.Web3AuthNoModal {
498
504
  base_.log.info("adapterInitResults", adapterName);
499
505
  if (this.walletAdapters[adapterName].type === base_.ADAPTER_CATEGORY.IN_APP) {
500
506
  var _adapterName, _this$options$uiConfi2, _this$options$uiConfi3, _this$options$uiConfi4;
501
- this.loginModal.addSocialLogins(adapterName, (0,ui_namespaceObject.getAdapterSocialLogins)(adapterName, (_adapterName = this.modalConfig.adapters[adapterName]) === null || _adapterName === void 0 ? void 0 : _adapterName.loginMethods), ((_this$options$uiConfi2 = this.options.uiConfig) === null || _this$options$uiConfi2 === void 0 ? void 0 : _this$options$uiConfi2.loginMethodsOrder) || ui_namespaceObject.OPENLOGIN_PROVIDERS, objectSpread2_default()(objectSpread2_default()({}, this.options.uiConfig), {}, {
507
+ this.loginModal.addSocialLogins(adapterName, (0,ui_namespaceObject.getAdapterSocialLogins)(adapterName, (_adapterName = this.modalConfig.adapters[adapterName]) === null || _adapterName === void 0 ? void 0 : _adapterName.loginMethods), ((_this$options$uiConfi2 = this.options.uiConfig) === null || _this$options$uiConfi2 === void 0 ? void 0 : _this$options$uiConfi2.loginMethodsOrder) || ui_namespaceObject.AUTH_PROVIDERS, objectSpread2_default()(objectSpread2_default()({}, this.options.uiConfig), {}, {
502
508
  loginGridCol: ((_this$options$uiConfi3 = this.options.uiConfig) === null || _this$options$uiConfi3 === void 0 ? void 0 : _this$options$uiConfi3.loginGridCol) || 3,
503
509
  primaryButton: ((_this$options$uiConfi4 = this.options.uiConfig) === null || _this$options$uiConfi4 === void 0 ? void 0 : _this$options$uiConfi4.primaryButton) || "socialLogin"
504
510
  }));
@@ -637,15 +643,16 @@ __webpack_require__.r(__webpack_exports__);
637
643
  /* harmony export */ defaultEvmWalletModalConfig: () => (/* reexport safe */ _config__WEBPACK_IMPORTED_MODULE_0__.eA),
638
644
  /* harmony export */ defaultOtherModalConfig: () => (/* reexport safe */ _config__WEBPACK_IMPORTED_MODULE_0__.Lu),
639
645
  /* harmony export */ defaultSolanaDappModalConfig: () => (/* reexport safe */ _config__WEBPACK_IMPORTED_MODULE_0__.Gu),
640
- /* harmony export */ defaultSolanaWalletModalConfig: () => (/* reexport safe */ _config__WEBPACK_IMPORTED_MODULE_0__.KT)
646
+ /* harmony export */ defaultSolanaWalletModalConfig: () => (/* reexport safe */ _config__WEBPACK_IMPORTED_MODULE_0__.KT),
647
+ /* harmony export */ walletRegistryUrl: () => (/* reexport safe */ _config__WEBPACK_IMPORTED_MODULE_0__.e4)
641
648
  /* harmony export */ });
642
649
  /* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(149);
643
650
  /* harmony import */ var _interface__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(624);
644
651
  /* harmony import */ var _interface__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_interface__WEBPACK_IMPORTED_MODULE_1__);
645
652
  /* harmony reexport (unknown) */ var __WEBPACK_REEXPORT_OBJECT__ = {};
646
- /* harmony reexport (unknown) */ for(const __WEBPACK_IMPORT_KEY__ in _interface__WEBPACK_IMPORTED_MODULE_1__) if(["default","defaultEvmDappModalConfig","defaultEvmWalletModalConfig","defaultOtherModalConfig","defaultSolanaDappModalConfig","defaultSolanaWalletModalConfig"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) __WEBPACK_REEXPORT_OBJECT__[__WEBPACK_IMPORT_KEY__] = () => _interface__WEBPACK_IMPORTED_MODULE_1__[__WEBPACK_IMPORT_KEY__]
653
+ /* harmony reexport (unknown) */ for(const __WEBPACK_IMPORT_KEY__ in _interface__WEBPACK_IMPORTED_MODULE_1__) if(["default","defaultEvmDappModalConfig","defaultEvmWalletModalConfig","defaultOtherModalConfig","defaultSolanaDappModalConfig","defaultSolanaWalletModalConfig","walletRegistryUrl"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) __WEBPACK_REEXPORT_OBJECT__[__WEBPACK_IMPORT_KEY__] = () => _interface__WEBPACK_IMPORTED_MODULE_1__[__WEBPACK_IMPORT_KEY__]
647
654
  /* harmony reexport (unknown) */ __webpack_require__.d(__webpack_exports__, __WEBPACK_REEXPORT_OBJECT__);
648
- /* harmony import */ var _modalManager__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(73);
655
+ /* harmony import */ var _modalManager__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(430);
649
656
 
650
657
 
651
658
 
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
+ import { LOGIN_PROVIDER, getAuthDefaultOptions, AuthAdapter } from '@web3auth/auth-adapter';
4
5
  import { CommonJRPCProvider } from '@web3auth/base-provider';
5
6
  import { Web3AuthNoModal } from '@web3auth/no-modal';
6
- import { LOGIN_PROVIDER, getOpenloginDefaultOptions, OpenloginAdapter } from '@web3auth/openlogin-adapter';
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';
7
+ import { getUserLanguage, LoginModal, capitalizeFirstLetter, getAdapterSocialLogins, LOGIN_MODAL_EVENTS, AUTH_PROVIDERS } from '@web3auth/ui';
8
+ import deepmerge from 'deepmerge';
10
9
 
11
10
  const defaultSolanaDappModalConfig = {
12
11
  chainNamespace: CHAIN_NAMESPACES.SOLANA,
@@ -17,14 +16,8 @@ const defaultSolanaDappModalConfig = {
17
16
  showOnMobile: true,
18
17
  showOnDesktop: true
19
18
  },
20
- [SOLANA_ADAPTERS.OPENLOGIN]: {
21
- label: "OpenLogin",
22
- showOnModal: true,
23
- showOnMobile: true,
24
- showOnDesktop: true
25
- },
26
- [SOLANA_ADAPTERS.PHANTOM]: {
27
- label: "Phantom",
19
+ [SOLANA_ADAPTERS.AUTH]: {
20
+ label: "Auth",
28
21
  showOnModal: true,
29
22
  showOnMobile: true,
30
23
  showOnDesktop: true
@@ -40,14 +33,8 @@ const defaultEvmDappModalConfig = {
40
33
  showOnMobile: true,
41
34
  showOnDesktop: true
42
35
  },
43
- [EVM_ADAPTERS.METAMASK]: {
44
- label: "MetaMask",
45
- showOnModal: true,
46
- showOnMobile: true,
47
- showOnDesktop: true
48
- },
49
- [EVM_ADAPTERS.OPENLOGIN]: {
50
- label: "OpenLogin",
36
+ [EVM_ADAPTERS.AUTH]: {
37
+ label: "Auth",
51
38
  showOnModal: true,
52
39
  showOnMobile: true,
53
40
  showOnDesktop: true
@@ -63,8 +50,8 @@ const defaultEvmDappModalConfig = {
63
50
  const defaultSolanaWalletModalConfig = {
64
51
  chainNamespace: CHAIN_NAMESPACES.SOLANA,
65
52
  adapters: {
66
- [SOLANA_ADAPTERS.OPENLOGIN]: {
67
- label: "OpenLogin",
53
+ [SOLANA_ADAPTERS.AUTH]: {
54
+ label: "Auth",
68
55
  showOnModal: true,
69
56
  showOnMobile: true,
70
57
  showOnDesktop: true
@@ -74,8 +61,8 @@ const defaultSolanaWalletModalConfig = {
74
61
  const defaultEvmWalletModalConfig = {
75
62
  chainNamespace: CHAIN_NAMESPACES.EIP155,
76
63
  adapters: {
77
- [EVM_ADAPTERS.OPENLOGIN]: {
78
- label: "OpenLogin",
64
+ [EVM_ADAPTERS.AUTH]: {
65
+ label: "Auth",
79
66
  showOnModal: true,
80
67
  showOnMobile: true,
81
68
  showOnDesktop: true
@@ -85,21 +72,22 @@ const defaultEvmWalletModalConfig = {
85
72
  const defaultOtherModalConfig = {
86
73
  chainNamespace: CHAIN_NAMESPACES.OTHER,
87
74
  adapters: {
88
- [EVM_ADAPTERS.OPENLOGIN]: {
89
- label: "OpenLogin",
75
+ [EVM_ADAPTERS.AUTH]: {
76
+ label: "Auth",
90
77
  showOnModal: true,
91
78
  showOnMobile: true,
92
79
  showOnDesktop: true
93
80
  }
94
81
  }
95
82
  };
83
+ const walletRegistryUrl = "https://assets.web3auth.io/v1/wallet-registry.json";
96
84
 
97
85
  class Web3Auth extends Web3AuthNoModal {
98
86
  constructor(options) {
99
87
  super(options);
100
88
  _defineProperty(this, "loginModal", void 0);
101
89
  _defineProperty(this, "options", void 0);
102
- _defineProperty(this, "modalConfig", defaultOtherModalConfig);
90
+ _defineProperty(this, "modalConfig", cloneDeep(defaultOtherModalConfig));
103
91
  this.options = _objectSpread({}, options);
104
92
  if (!this.options.uiConfig) this.options.uiConfig = {};
105
93
  if (!this.coreOptions.privateKeyProvider) throw WalletInitializationError.invalidParams("privateKeyProvider is required");
@@ -120,22 +108,31 @@ class Web3Auth extends Web3AuthNoModal {
120
108
  const {
121
109
  whitelabel
122
110
  } = projectConfig;
123
- this.options.uiConfig = merge(clonedeep(whitelabel), this.options.uiConfig);
111
+ this.options.uiConfig = deepmerge(cloneDeep(whitelabel), this.options.uiConfig);
124
112
  if (!this.options.uiConfig.defaultLanguage) this.options.uiConfig.defaultLanguage = getUserLanguage(this.options.uiConfig.defaultLanguage);
125
113
  if (!this.options.uiConfig.mode) this.options.uiConfig.mode = "light";
114
+ let walletRegistry = {};
115
+ try {
116
+ walletRegistry = await fetchWalletRegistry(walletRegistryUrl);
117
+ } catch (e) {
118
+ log.error("Failed to fetch wallet registry", e);
119
+ }
126
120
  this.loginModal = new LoginModal(_objectSpread(_objectSpread({}, this.options.uiConfig), {}, {
127
- adapterListener: this
121
+ adapterListener: this,
122
+ chainNamespace: this.options.chainConfig.chainNamespace,
123
+ walletRegistry
128
124
  }));
129
125
  this.subscribeToLoginModalEvents();
130
126
  const {
131
127
  sms_otp_enabled: smsOtpEnabled,
132
- whitelist
128
+ whitelist,
129
+ key_export_enabled: keyExportEnabled
133
130
  } = projectConfig;
134
131
  if (smsOtpEnabled !== undefined) {
135
132
  var _params;
136
133
  const adapterConfig = {
137
- [WALLET_ADAPTERS.OPENLOGIN]: {
138
- label: WALLET_ADAPTERS.OPENLOGIN,
134
+ [WALLET_ADAPTERS.AUTH]: {
135
+ label: WALLET_ADAPTERS.AUTH,
139
136
  loginMethods: {
140
137
  [LOGIN_PROVIDER.SMS_PASSWORDLESS]: {
141
138
  name: LOGIN_PROVIDER.SMS_PASSWORDLESS,
@@ -149,7 +146,7 @@ class Web3Auth extends Web3AuthNoModal {
149
146
  if (!((_params = params) !== null && _params !== void 0 && _params.modalConfig)) params = {
150
147
  modalConfig: {}
151
148
  };
152
- params.modalConfig = merge(clonedeep(params.modalConfig), adapterConfig);
149
+ params.modalConfig = deepmerge(cloneDeep(params.modalConfig), adapterConfig);
153
150
  }
154
151
  await this.loginModal.initModal();
155
152
  const providedChainConfig = this.options.chainConfig;
@@ -179,9 +176,9 @@ class Web3Auth extends Web3AuthNoModal {
179
176
  // and if adapter is not hidden by user
180
177
  if (!adapter && (_this$modalConfig$ada3 = this.modalConfig.adapters) !== null && _this$modalConfig$ada3 !== void 0 && _this$modalConfig$ada3[adapterName].showOnModal) {
181
178
  // Adapters to be shown on modal should be pre-configured.
182
- if (adapterName === WALLET_ADAPTERS.OPENLOGIN) {
179
+ if (adapterName === WALLET_ADAPTERS.AUTH) {
183
180
  var _this$coreOptions$cha;
184
- const defaultOptions = getOpenloginDefaultOptions();
181
+ const defaultOptions = getAuthDefaultOptions();
185
182
  const {
186
183
  clientId,
187
184
  useCoreKitKey,
@@ -194,13 +191,13 @@ class Web3Auth extends Web3AuthNoModal {
194
191
  if (!privateKeyProvider) {
195
192
  throw WalletInitializationError.invalidParams("privateKeyProvider is required");
196
193
  }
197
- const finalOpenloginAdapterSettings = _objectSpread(_objectSpread({}, defaultOptions.adapterSettings), {}, {
194
+ const finalAuthAdapterSettings = _objectSpread(_objectSpread({}, defaultOptions.adapterSettings), {}, {
198
195
  clientId,
199
196
  network: web3AuthNetwork,
200
197
  whiteLabel: this.options.uiConfig
201
198
  });
202
199
  if (smsOtpEnabled !== undefined) {
203
- finalOpenloginAdapterSettings.loginConfig = {
200
+ finalAuthAdapterSettings.loginConfig = {
204
201
  [LOGIN_PROVIDER.SMS_PASSWORDLESS]: {
205
202
  showOnModal: smsOtpEnabled,
206
203
  showOnDesktop: smsOtpEnabled,
@@ -210,21 +207,21 @@ class Web3Auth extends Web3AuthNoModal {
210
207
  };
211
208
  }
212
209
  if (whitelist) {
213
- finalOpenloginAdapterSettings.originData = whitelist.signed_urls;
210
+ finalAuthAdapterSettings.originData = whitelist.signed_urls;
214
211
  }
215
212
  if (this.options.uiConfig.uxMode) {
216
- finalOpenloginAdapterSettings.uxMode = this.options.uiConfig.uxMode;
213
+ finalAuthAdapterSettings.uxMode = this.options.uiConfig.uxMode;
217
214
  }
218
- const openloginAdapter = new OpenloginAdapter(_objectSpread(_objectSpread({}, defaultOptions), {}, {
215
+ const authAdapter = new AuthAdapter(_objectSpread(_objectSpread({}, defaultOptions), {}, {
219
216
  clientId,
220
217
  useCoreKitKey,
221
218
  chainConfig: _objectSpread({}, finalChainConfig),
222
- adapterSettings: finalOpenloginAdapterSettings,
219
+ adapterSettings: finalAuthAdapterSettings,
223
220
  sessionTime,
224
221
  web3AuthNetwork,
225
222
  privateKeyProvider
226
223
  }));
227
- this.walletAdapters[adapterName] = openloginAdapter;
224
+ this.walletAdapters[adapterName] = authAdapter;
228
225
  return adapterName;
229
226
  }
230
227
  throw WalletInitializationError.invalidParams(`Adapter ${adapterName} is not configured`);
@@ -249,19 +246,19 @@ class Web3Auth extends Web3AuthNoModal {
249
246
  chainConfig
250
247
  });
251
248
  }
252
- if (adapterName === WALLET_ADAPTERS.OPENLOGIN) {
249
+ if (adapterName === WALLET_ADAPTERS.AUTH) {
253
250
  var _this$options$uiConfi;
254
- const openloginAdapter = this.walletAdapters[adapterName];
251
+ const authAdapter = this.walletAdapters[adapterName];
255
252
  if (this.coreOptions.privateKeyProvider) {
256
- if (openloginAdapter.currentChainNamespace !== this.coreOptions.privateKeyProvider.currentChainConfig.chainNamespace) {
257
- throw WalletInitializationError.incompatibleChainNameSpace("private key provider is not compatible with provided chainNamespace for openlogin adapter");
253
+ if (authAdapter.currentChainNamespace !== this.coreOptions.privateKeyProvider.currentChainConfig.chainNamespace) {
254
+ throw WalletInitializationError.incompatibleChainNameSpace("private key provider is not compatible with provided chainNamespace for auth adapter");
258
255
  }
259
- openloginAdapter.setAdapterSettings({
256
+ authAdapter.setAdapterSettings({
260
257
  privateKeyProvider: this.coreOptions.privateKeyProvider
261
258
  });
262
259
  }
263
260
  if (smsOtpEnabled !== undefined) {
264
- openloginAdapter.setAdapterSettings({
261
+ authAdapter.setAdapterSettings({
265
262
  loginConfig: {
266
263
  [LOGIN_PROVIDER.SMS_PASSWORDLESS]: {
267
264
  showOnModal: smsOtpEnabled,
@@ -273,20 +270,20 @@ class Web3Auth extends Web3AuthNoModal {
273
270
  });
274
271
  }
275
272
  if (whitelist) {
276
- openloginAdapter.setAdapterSettings({
273
+ authAdapter.setAdapterSettings({
277
274
  originData: whitelist.signed_urls
278
275
  });
279
276
  }
280
277
  if ((_this$options$uiConfi = this.options.uiConfig) !== null && _this$options$uiConfi !== void 0 && _this$options$uiConfi.uxMode) {
281
- openloginAdapter.setAdapterSettings({
278
+ authAdapter.setAdapterSettings({
282
279
  uxMode: this.options.uiConfig.uxMode
283
280
  });
284
281
  }
285
- openloginAdapter.setAdapterSettings({
282
+ authAdapter.setAdapterSettings({
286
283
  whiteLabel: this.options.uiConfig
287
284
  });
288
- if (!openloginAdapter.privateKeyProvider) {
289
- throw WalletInitializationError.invalidParams("privateKeyProvider is required for openlogin adapter");
285
+ if (!authAdapter.privateKeyProvider) {
286
+ throw WalletInitializationError.invalidParams("privateKeyProvider is required for auth adapter");
290
287
  }
291
288
  } else if (adapterName === WALLET_ADAPTERS.WALLET_CONNECT_V2) {
292
289
  const walletConnectAdapter = this.walletAdapters[adapterName];
@@ -360,6 +357,11 @@ class Web3Auth extends Web3AuthNoModal {
360
357
  this.commonJRPCProvider = await CommonJRPCProvider.getProviderInstance({
361
358
  chainConfig: this.coreOptions.chainConfig
362
359
  });
360
+ if (typeof keyExportEnabled === "boolean") {
361
+ this.coreOptions.privateKeyProvider.setKeyExportFlag(keyExportEnabled);
362
+ // dont know if we need to do this.
363
+ this.commonJRPCProvider.setKeyExportFlag(keyExportEnabled);
364
+ }
363
365
  await Promise.all(initPromises);
364
366
  if (this.status === ADAPTER_STATUS.NOT_READY) {
365
367
  this.status = ADAPTER_STATUS.READY;
@@ -418,14 +420,20 @@ class Web3Auth extends Web3AuthNoModal {
418
420
  await adapter.init({
419
421
  autoConnect: this.cachedAdapter === adapterName
420
422
  }).then(() => {
421
- adaptersConfig[adapterName] = this.modalConfig.adapters[adapterName];
423
+ const adapterModalConfig = this.modalConfig.adapters[adapterName];
424
+ adaptersConfig[adapterName] = _objectSpread(_objectSpread({}, adapterModalConfig), {}, {
425
+ isInjected: adapter.isInjected
426
+ });
422
427
  this.loginModal.addWalletLogins(adaptersConfig, {
423
428
  showExternalWalletsOnly: !!(options !== null && options !== void 0 && options.showExternalWalletsOnly)
424
429
  });
425
430
  return undefined;
426
431
  }).catch(error => log.error(error, "error while initializing adapter", adapterName));
427
432
  } else if (adapter.status === ADAPTER_STATUS.READY) {
428
- adaptersConfig[adapterName] = this.modalConfig.adapters[adapterName];
433
+ const adapterModalConfig = this.modalConfig.adapters[adapterName];
434
+ adaptersConfig[adapterName] = _objectSpread(_objectSpread({}, adapterModalConfig), {}, {
435
+ isInjected: adapter.isInjected
436
+ });
429
437
  this.loginModal.addWalletLogins(adaptersConfig, {
430
438
  showExternalWalletsOnly: !!(options !== null && options !== void 0 && options.showExternalWalletsOnly)
431
439
  });
@@ -437,7 +445,7 @@ class Web3Auth extends Web3AuthNoModal {
437
445
  log.info("adapterInitResults", adapterName);
438
446
  if (this.walletAdapters[adapterName].type === ADAPTER_CATEGORY.IN_APP) {
439
447
  var _adapterName, _this$options$uiConfi2, _this$options$uiConfi3, _this$options$uiConfi4;
440
- this.loginModal.addSocialLogins(adapterName, getAdapterSocialLogins(adapterName, (_adapterName = this.modalConfig.adapters[adapterName]) === null || _adapterName === void 0 ? void 0 : _adapterName.loginMethods), ((_this$options$uiConfi2 = this.options.uiConfig) === null || _this$options$uiConfi2 === void 0 ? void 0 : _this$options$uiConfi2.loginMethodsOrder) || OPENLOGIN_PROVIDERS, _objectSpread(_objectSpread({}, this.options.uiConfig), {}, {
448
+ this.loginModal.addSocialLogins(adapterName, getAdapterSocialLogins(adapterName, (_adapterName = this.modalConfig.adapters[adapterName]) === null || _adapterName === void 0 ? void 0 : _adapterName.loginMethods), ((_this$options$uiConfi2 = this.options.uiConfig) === null || _this$options$uiConfi2 === void 0 ? void 0 : _this$options$uiConfi2.loginMethodsOrder) || AUTH_PROVIDERS, _objectSpread(_objectSpread({}, this.options.uiConfig), {}, {
441
449
  loginGridCol: ((_this$options$uiConfi3 = this.options.uiConfig) === null || _this$options$uiConfi3 === void 0 ? void 0 : _this$options$uiConfi3.loginGridCol) || 3,
442
450
  primaryButton: ((_this$options$uiConfi4 = this.options.uiConfig) === null || _this$options$uiConfi4 === void 0 ? void 0 : _this$options$uiConfi4.primaryButton) || "socialLogin"
443
451
  }));
@@ -487,4 +495,4 @@ class Web3Auth extends Web3AuthNoModal {
487
495
  }
488
496
  }
489
497
 
490
- export { Web3Auth, defaultEvmDappModalConfig, defaultEvmWalletModalConfig, defaultOtherModalConfig, defaultSolanaDappModalConfig, defaultSolanaWalletModalConfig };
498
+ export { Web3Auth, defaultEvmDappModalConfig, defaultEvmWalletModalConfig, defaultOtherModalConfig, defaultSolanaDappModalConfig, defaultSolanaWalletModalConfig, walletRegistryUrl };