@web3auth/modal 8.0.0 → 8.1.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.cjs.js +101 -47
- package/dist/modal.esm.js +72 -24
- package/dist/modal.umd.min.js +1 -2
- package/dist/modal.umd.min.js.LICENSE.txt +0 -6
- package/package.json +14 -13
- package/dist/modal.cjs.js.map +0 -1
- package/dist/modal.esm.js.map +0 -1
- package/dist/modal.umd.min.js.map +0 -1
- package/src/config.ts +0 -93
- package/src/index.ts +0 -3
- package/src/interface.ts +0 -14
- package/src/modalManager.ts +0 -354
package/dist/modal.cjs.js
CHANGED
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
/******/ (() => { // webpackBootstrap
|
|
2
2
|
/******/ var __webpack_modules__ = ({
|
|
3
3
|
|
|
4
|
-
/***/
|
|
4
|
+
/***/ 149:
|
|
5
5
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
6
6
|
|
|
7
7
|
"use strict";
|
|
8
8
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
9
|
-
/* harmony export */
|
|
10
|
-
/* harmony export */
|
|
11
|
-
/* harmony export */
|
|
12
|
-
/* harmony export */
|
|
13
|
-
/* harmony export */
|
|
9
|
+
/* harmony export */ Gu: () => (/* binding */ defaultSolanaDappModalConfig),
|
|
10
|
+
/* harmony export */ KT: () => (/* binding */ defaultSolanaWalletModalConfig),
|
|
11
|
+
/* harmony export */ Lu: () => (/* binding */ defaultOtherModalConfig),
|
|
12
|
+
/* harmony export */ eA: () => (/* binding */ defaultEvmWalletModalConfig),
|
|
13
|
+
/* harmony export */ g2: () => (/* binding */ defaultEvmDappModalConfig)
|
|
14
14
|
/* harmony export */ });
|
|
15
|
-
/* harmony import */ var _web3auth_base__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(
|
|
15
|
+
/* harmony import */ var _web3auth_base__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(377);
|
|
16
16
|
/* harmony import */ var _web3auth_base__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_web3auth_base__WEBPACK_IMPORTED_MODULE_0__);
|
|
17
17
|
|
|
18
18
|
const defaultSolanaDappModalConfig = {
|
|
@@ -103,21 +103,21 @@ const defaultOtherModalConfig = {
|
|
|
103
103
|
|
|
104
104
|
/***/ }),
|
|
105
105
|
|
|
106
|
-
/***/
|
|
106
|
+
/***/ 624:
|
|
107
107
|
/***/ (() => {
|
|
108
108
|
|
|
109
109
|
|
|
110
110
|
|
|
111
111
|
/***/ }),
|
|
112
112
|
|
|
113
|
-
/***/
|
|
113
|
+
/***/ 73:
|
|
114
114
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
115
115
|
|
|
116
116
|
"use strict";
|
|
117
117
|
|
|
118
118
|
// EXPORTS
|
|
119
119
|
__webpack_require__.d(__webpack_exports__, {
|
|
120
|
-
|
|
120
|
+
y: () => (/* binding */ Web3Auth)
|
|
121
121
|
});
|
|
122
122
|
|
|
123
123
|
;// CONCATENATED MODULE: external "@babel/runtime/helpers/objectSpread2"
|
|
@@ -127,7 +127,7 @@ var objectSpread2_default = /*#__PURE__*/__webpack_require__.n(objectSpread2_nam
|
|
|
127
127
|
const defineProperty_namespaceObject = require("@babel/runtime/helpers/defineProperty");
|
|
128
128
|
var defineProperty_default = /*#__PURE__*/__webpack_require__.n(defineProperty_namespaceObject);
|
|
129
129
|
// EXTERNAL MODULE: external "@web3auth/base"
|
|
130
|
-
var base_ = __webpack_require__(
|
|
130
|
+
var base_ = __webpack_require__(377);
|
|
131
131
|
;// CONCATENATED MODULE: external "@web3auth/base-provider"
|
|
132
132
|
const base_provider_namespaceObject = require("@web3auth/base-provider");
|
|
133
133
|
;// CONCATENATED MODULE: external "@web3auth/no-modal"
|
|
@@ -136,8 +136,14 @@ const no_modal_namespaceObject = require("@web3auth/no-modal");
|
|
|
136
136
|
const openlogin_adapter_namespaceObject = require("@web3auth/openlogin-adapter");
|
|
137
137
|
;// CONCATENATED MODULE: external "@web3auth/ui"
|
|
138
138
|
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);
|
|
139
145
|
// EXTERNAL MODULE: ./src/config.ts
|
|
140
|
-
var config = __webpack_require__(
|
|
146
|
+
var config = __webpack_require__(149);
|
|
141
147
|
;// CONCATENATED MODULE: ./src/modalManager.ts
|
|
142
148
|
|
|
143
149
|
|
|
@@ -147,21 +153,17 @@ var config = __webpack_require__(591);
|
|
|
147
153
|
|
|
148
154
|
|
|
149
155
|
|
|
156
|
+
|
|
157
|
+
|
|
150
158
|
class Web3Auth extends no_modal_namespaceObject.Web3AuthNoModal {
|
|
151
159
|
constructor(options) {
|
|
152
160
|
super(options);
|
|
153
161
|
defineProperty_default()(this, "loginModal", void 0);
|
|
154
162
|
defineProperty_default()(this, "options", void 0);
|
|
155
|
-
defineProperty_default()(this, "modalConfig", config/* defaultOtherModalConfig */.
|
|
163
|
+
defineProperty_default()(this, "modalConfig", config/* defaultOtherModalConfig */.Lu);
|
|
156
164
|
this.options = objectSpread2_default()({}, options);
|
|
157
165
|
if (!this.options.uiConfig) this.options.uiConfig = {};
|
|
158
|
-
if (!this.options.uiConfig.defaultLanguage) this.options.uiConfig.defaultLanguage = (0,ui_namespaceObject.getUserLanguage)(this.options.uiConfig.defaultLanguage);
|
|
159
|
-
if (!this.options.uiConfig.mode) this.options.uiConfig.mode = "auto";
|
|
160
166
|
if (!this.coreOptions.privateKeyProvider) throw base_.WalletInitializationError.invalidParams("privateKeyProvider is required");
|
|
161
|
-
this.loginModal = new ui_namespaceObject.LoginModal(objectSpread2_default()(objectSpread2_default()({}, this.options.uiConfig), {}, {
|
|
162
|
-
adapterListener: this
|
|
163
|
-
}));
|
|
164
|
-
this.subscribeToLoginModalEvents();
|
|
165
167
|
}
|
|
166
168
|
setModalConfig(modalConfig) {
|
|
167
169
|
super.checkInitRequirements();
|
|
@@ -169,13 +171,51 @@ class Web3Auth extends no_modal_namespaceObject.Web3AuthNoModal {
|
|
|
169
171
|
}
|
|
170
172
|
async initModal(params) {
|
|
171
173
|
super.checkInitRequirements();
|
|
174
|
+
let projectConfig;
|
|
175
|
+
try {
|
|
176
|
+
projectConfig = await (0,base_.fetchProjectConfig)(this.options.clientId);
|
|
177
|
+
} catch (e) {
|
|
178
|
+
throw base_.WalletInitializationError.notReady("failed to fetch project configurations");
|
|
179
|
+
}
|
|
180
|
+
const {
|
|
181
|
+
whitelabel
|
|
182
|
+
} = projectConfig;
|
|
183
|
+
this.options.uiConfig = external_lodash_merge_default()(external_lodash_clonedeep_default()(whitelabel), this.options.uiConfig);
|
|
184
|
+
if (!this.options.uiConfig.defaultLanguage) this.options.uiConfig.defaultLanguage = (0,ui_namespaceObject.getUserLanguage)(this.options.uiConfig.defaultLanguage);
|
|
185
|
+
if (!this.options.uiConfig.mode) this.options.uiConfig.mode = "auto";
|
|
186
|
+
this.loginModal = new ui_namespaceObject.LoginModal(objectSpread2_default()(objectSpread2_default()({}, this.options.uiConfig), {}, {
|
|
187
|
+
adapterListener: this
|
|
188
|
+
}));
|
|
189
|
+
this.subscribeToLoginModalEvents();
|
|
190
|
+
const {
|
|
191
|
+
sms_otp_enabled: smsOtpEnabled
|
|
192
|
+
} = projectConfig;
|
|
193
|
+
if (smsOtpEnabled !== undefined) {
|
|
194
|
+
var _params;
|
|
195
|
+
const adapterConfig = {
|
|
196
|
+
[base_.WALLET_ADAPTERS.OPENLOGIN]: {
|
|
197
|
+
label: base_.WALLET_ADAPTERS.OPENLOGIN,
|
|
198
|
+
loginMethods: {
|
|
199
|
+
sms_passwordless: {
|
|
200
|
+
name: "sms_passwordless",
|
|
201
|
+
showOnModal: smsOtpEnabled,
|
|
202
|
+
showOnDesktop: smsOtpEnabled,
|
|
203
|
+
showOnMobile: smsOtpEnabled
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
};
|
|
208
|
+
if (!((_params = params) !== null && _params !== void 0 && _params.modalConfig)) params = {
|
|
209
|
+
modalConfig: {}
|
|
210
|
+
};
|
|
211
|
+
params.modalConfig = external_lodash_merge_default()(external_lodash_clonedeep_default()(params.modalConfig), adapterConfig);
|
|
212
|
+
}
|
|
172
213
|
await this.loginModal.initModal();
|
|
173
214
|
const providedChainConfig = this.options.chainConfig;
|
|
174
|
-
// TODO: get stuff from dashboard here
|
|
175
215
|
// merge default adapters with the custom configured adapters.
|
|
176
216
|
const allAdapters = [...new Set([...Object.keys(this.modalConfig.adapters || {}), ...Object.keys(this.walletAdapters)])];
|
|
177
217
|
const adapterConfigurationPromises = allAdapters.map(async adapterName => {
|
|
178
|
-
var _this$modalConfig$ada,
|
|
218
|
+
var _this$modalConfig$ada, _params2, _this$modalConfig$ada2, _this$modalConfig$ada3;
|
|
179
219
|
// start with the default config of adapter.
|
|
180
220
|
let adapterConfig = ((_this$modalConfig$ada = this.modalConfig.adapters) === null || _this$modalConfig$ada === void 0 ? void 0 : _this$modalConfig$ada[adapterName]) || {
|
|
181
221
|
label: adapterName,
|
|
@@ -185,7 +225,7 @@ class Web3Auth extends no_modal_namespaceObject.Web3AuthNoModal {
|
|
|
185
225
|
};
|
|
186
226
|
|
|
187
227
|
// override the default config of adapter if some config is being provided by the user.
|
|
188
|
-
if (params !== null &&
|
|
228
|
+
if ((_params2 = params) !== null && _params2 !== void 0 && (_params2 = _params2.modalConfig) !== null && _params2 !== void 0 && _params2[adapterName]) {
|
|
189
229
|
adapterConfig = objectSpread2_default()(objectSpread2_default()({}, adapterConfig), params.modalConfig[adapterName]);
|
|
190
230
|
}
|
|
191
231
|
this.modalConfig.adapters[adapterName] = adapterConfig;
|
|
@@ -279,24 +319,39 @@ class Web3Auth extends no_modal_namespaceObject.Web3AuthNoModal {
|
|
|
279
319
|
}
|
|
280
320
|
} else if (adapterName === base_.WALLET_ADAPTERS.WALLET_CONNECT_V2) {
|
|
281
321
|
const walletConnectAdapter = this.walletAdapters[adapterName];
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
322
|
+
const {
|
|
323
|
+
wallet_connect_enabled: walletConnectEnabled,
|
|
324
|
+
wallet_connect_project_id: walletConnectProjectId
|
|
325
|
+
} = projectConfig;
|
|
326
|
+
if (walletConnectEnabled === false) {
|
|
327
|
+
var _this$modalConfig$ada5, _this$modalConfig$ada6, _this$modalConfig$ada7;
|
|
328
|
+
// override user specified config by hiding wallet connect
|
|
329
|
+
this.modalConfig.adapters = objectSpread2_default()(objectSpread2_default()({}, (_this$modalConfig$ada5 = this.modalConfig.adapters) !== null && _this$modalConfig$ada5 !== void 0 ? _this$modalConfig$ada5 : {}), {}, {
|
|
330
|
+
[base_.WALLET_ADAPTERS.WALLET_CONNECT_V2]: objectSpread2_default()(objectSpread2_default()({}, (_this$modalConfig$ada6 = (_this$modalConfig$ada7 = this.modalConfig.adapters) === null || _this$modalConfig$ada7 === void 0 ? void 0 : _this$modalConfig$ada7[base_.WALLET_ADAPTERS.WALLET_CONNECT_V2]) !== null && _this$modalConfig$ada6 !== void 0 ? _this$modalConfig$ada6 : {}), {}, {
|
|
331
|
+
showOnModal: false
|
|
332
|
+
})
|
|
333
|
+
});
|
|
334
|
+
this.modalConfig.adapters[base_.WALLET_ADAPTERS.WALLET_CONNECT_V2].showOnModal = false;
|
|
335
|
+
} else {
|
|
336
|
+
if (!walletConnectProjectId) throw base_.WalletInitializationError.invalidParams("Invalid wallet connect project id. Please configure it on the dashboard");
|
|
337
|
+
walletConnectAdapter.setAdapterSettings({
|
|
338
|
+
adapterSettings: {
|
|
339
|
+
walletConnectInitOptions: {
|
|
340
|
+
projectId: walletConnectProjectId
|
|
341
|
+
}
|
|
287
342
|
}
|
|
288
|
-
}
|
|
289
|
-
}
|
|
343
|
+
});
|
|
344
|
+
}
|
|
290
345
|
}
|
|
291
346
|
return adapterName;
|
|
292
347
|
}
|
|
293
348
|
});
|
|
294
349
|
const adapterNames = await Promise.all(adapterConfigurationPromises);
|
|
295
350
|
const hasInAppWallets = Object.values(this.walletAdapters).some(adapter => {
|
|
296
|
-
var _this$modalConfig$
|
|
351
|
+
var _this$modalConfig$ada8, _this$modalConfig$ada9, _adapter$name;
|
|
297
352
|
if (adapter.type !== base_.ADAPTER_CATEGORY.IN_APP) return false;
|
|
298
|
-
if (((_this$modalConfig$
|
|
299
|
-
if (!((_this$modalConfig$
|
|
353
|
+
if (((_this$modalConfig$ada8 = this.modalConfig.adapters) === null || _this$modalConfig$ada8 === void 0 || (_this$modalConfig$ada8 = _this$modalConfig$ada8[adapter.name]) === null || _this$modalConfig$ada8 === void 0 ? void 0 : _this$modalConfig$ada8.showOnModal) !== true) return false;
|
|
354
|
+
if (!((_this$modalConfig$ada9 = this.modalConfig.adapters) !== null && _this$modalConfig$ada9 !== void 0 && (_this$modalConfig$ada9 = _this$modalConfig$ada9[adapter.name]) !== null && _this$modalConfig$ada9 !== void 0 && _this$modalConfig$ada9.loginMethods)) return true;
|
|
300
355
|
const mergedLoginMethods = (0,ui_namespaceObject.getAdapterSocialLogins)(adapter.name, (_adapter$name = this.modalConfig.adapters[adapter.name]) === null || _adapter$name === void 0 ? void 0 : _adapter$name.loginMethods);
|
|
301
356
|
if (Object.values(mergedLoginMethods).some(method => method.showOnModal)) return true;
|
|
302
357
|
return false;
|
|
@@ -334,8 +389,8 @@ class Web3Auth extends no_modal_namespaceObject.Web3AuthNoModal {
|
|
|
334
389
|
this.status = base_.ADAPTER_STATUS.READY;
|
|
335
390
|
await Promise.all(initPromises);
|
|
336
391
|
const hasExternalWallets = allAdapters.some(adapterName => {
|
|
337
|
-
var _this$walletAdapters$, _this$modalConfig$
|
|
338
|
-
return ((_this$walletAdapters$ = this.walletAdapters[adapterName]) === null || _this$walletAdapters$ === void 0 ? void 0 : _this$walletAdapters$.type) === base_.ADAPTER_CATEGORY.EXTERNAL && ((_this$modalConfig$
|
|
392
|
+
var _this$walletAdapters$, _this$modalConfig$ada10;
|
|
393
|
+
return ((_this$walletAdapters$ = this.walletAdapters[adapterName]) === null || _this$walletAdapters$ === void 0 ? void 0 : _this$walletAdapters$.type) === base_.ADAPTER_CATEGORY.EXTERNAL && ((_this$modalConfig$ada10 = this.modalConfig.adapters) === null || _this$modalConfig$ada10 === void 0 ? void 0 : _this$modalConfig$ada10[adapterName].showOnModal);
|
|
339
394
|
});
|
|
340
395
|
if (hasExternalWallets) {
|
|
341
396
|
this.loginModal.initExternalWalletContainer();
|
|
@@ -351,7 +406,7 @@ class Web3Auth extends no_modal_namespaceObject.Web3AuthNoModal {
|
|
|
351
406
|
}
|
|
352
407
|
}
|
|
353
408
|
async connect() {
|
|
354
|
-
|
|
409
|
+
if (!this.loginModal) throw new Error("Login modal is not initialized");
|
|
355
410
|
// if already connected return provider
|
|
356
411
|
if (this.connectedAdapterName && this.status === base_.ADAPTER_STATUS.CONNECTED && this.provider) return this.provider;
|
|
357
412
|
this.loginModal.open();
|
|
@@ -457,7 +512,7 @@ class Web3Auth extends no_modal_namespaceObject.Web3AuthNoModal {
|
|
|
457
512
|
|
|
458
513
|
/***/ }),
|
|
459
514
|
|
|
460
|
-
/***/
|
|
515
|
+
/***/ 377:
|
|
461
516
|
/***/ ((module) => {
|
|
462
517
|
|
|
463
518
|
"use strict";
|
|
@@ -539,20 +594,20 @@ var __webpack_exports__ = {};
|
|
|
539
594
|
"use strict";
|
|
540
595
|
__webpack_require__.r(__webpack_exports__);
|
|
541
596
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
542
|
-
/* harmony export */ Web3Auth: () => (/* reexport safe */ _modalManager__WEBPACK_IMPORTED_MODULE_2__
|
|
543
|
-
/* harmony export */ defaultEvmDappModalConfig: () => (/* reexport safe */ _config__WEBPACK_IMPORTED_MODULE_0__.
|
|
544
|
-
/* harmony export */ defaultEvmWalletModalConfig: () => (/* reexport safe */ _config__WEBPACK_IMPORTED_MODULE_0__.
|
|
545
|
-
/* harmony export */ defaultOtherModalConfig: () => (/* reexport safe */ _config__WEBPACK_IMPORTED_MODULE_0__.
|
|
546
|
-
/* harmony export */ defaultSolanaDappModalConfig: () => (/* reexport safe */ _config__WEBPACK_IMPORTED_MODULE_0__.
|
|
547
|
-
/* harmony export */ defaultSolanaWalletModalConfig: () => (/* reexport safe */ _config__WEBPACK_IMPORTED_MODULE_0__.
|
|
597
|
+
/* harmony export */ Web3Auth: () => (/* reexport safe */ _modalManager__WEBPACK_IMPORTED_MODULE_2__.y),
|
|
598
|
+
/* harmony export */ defaultEvmDappModalConfig: () => (/* reexport safe */ _config__WEBPACK_IMPORTED_MODULE_0__.g2),
|
|
599
|
+
/* harmony export */ defaultEvmWalletModalConfig: () => (/* reexport safe */ _config__WEBPACK_IMPORTED_MODULE_0__.eA),
|
|
600
|
+
/* harmony export */ defaultOtherModalConfig: () => (/* reexport safe */ _config__WEBPACK_IMPORTED_MODULE_0__.Lu),
|
|
601
|
+
/* harmony export */ defaultSolanaDappModalConfig: () => (/* reexport safe */ _config__WEBPACK_IMPORTED_MODULE_0__.Gu),
|
|
602
|
+
/* harmony export */ defaultSolanaWalletModalConfig: () => (/* reexport safe */ _config__WEBPACK_IMPORTED_MODULE_0__.KT)
|
|
548
603
|
/* harmony export */ });
|
|
549
|
-
/* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(
|
|
550
|
-
/* harmony import */ var _interface__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(
|
|
604
|
+
/* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(149);
|
|
605
|
+
/* harmony import */ var _interface__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(624);
|
|
551
606
|
/* harmony import */ var _interface__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_interface__WEBPACK_IMPORTED_MODULE_1__);
|
|
552
607
|
/* harmony reexport (unknown) */ var __WEBPACK_REEXPORT_OBJECT__ = {};
|
|
553
608
|
/* 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__]
|
|
554
609
|
/* harmony reexport (unknown) */ __webpack_require__.d(__webpack_exports__, __WEBPACK_REEXPORT_OBJECT__);
|
|
555
|
-
/* harmony import */ var _modalManager__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(
|
|
610
|
+
/* harmony import */ var _modalManager__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(73);
|
|
556
611
|
|
|
557
612
|
|
|
558
613
|
|
|
@@ -560,5 +615,4 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
560
615
|
|
|
561
616
|
module.exports = __webpack_exports__;
|
|
562
617
|
/******/ })()
|
|
563
|
-
;
|
|
564
|
-
//# sourceMappingURL=modal.cjs.js.map
|
|
618
|
+
;
|
package/dist/modal.esm.js
CHANGED
|
@@ -1,10 +1,12 @@
|
|
|
1
|
-
import { CHAIN_NAMESPACES, SOLANA_ADAPTERS, EVM_ADAPTERS, WalletInitializationError,
|
|
1
|
+
import { CHAIN_NAMESPACES, SOLANA_ADAPTERS, EVM_ADAPTERS, WalletInitializationError, fetchProjectConfig, WALLET_ADAPTERS, log, 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 { getOpenloginDefaultOptions, OpenloginAdapter } from '@web3auth/openlogin-adapter';
|
|
7
7
|
import { getUserLanguage, LoginModal, getAdapterSocialLogins, LOGIN_MODAL_EVENTS, OPENLOGIN_PROVIDERS } from '@web3auth/ui';
|
|
8
|
+
import clonedeep from 'lodash.clonedeep';
|
|
9
|
+
import merge from 'lodash.merge';
|
|
8
10
|
|
|
9
11
|
const defaultSolanaDappModalConfig = {
|
|
10
12
|
chainNamespace: CHAIN_NAMESPACES.SOLANA,
|
|
@@ -100,13 +102,7 @@ class Web3Auth extends Web3AuthNoModal {
|
|
|
100
102
|
_defineProperty(this, "modalConfig", defaultOtherModalConfig);
|
|
101
103
|
this.options = _objectSpread({}, options);
|
|
102
104
|
if (!this.options.uiConfig) this.options.uiConfig = {};
|
|
103
|
-
if (!this.options.uiConfig.defaultLanguage) this.options.uiConfig.defaultLanguage = getUserLanguage(this.options.uiConfig.defaultLanguage);
|
|
104
|
-
if (!this.options.uiConfig.mode) this.options.uiConfig.mode = "auto";
|
|
105
105
|
if (!this.coreOptions.privateKeyProvider) throw WalletInitializationError.invalidParams("privateKeyProvider is required");
|
|
106
|
-
this.loginModal = new LoginModal(_objectSpread(_objectSpread({}, this.options.uiConfig), {}, {
|
|
107
|
-
adapterListener: this
|
|
108
|
-
}));
|
|
109
|
-
this.subscribeToLoginModalEvents();
|
|
110
106
|
}
|
|
111
107
|
setModalConfig(modalConfig) {
|
|
112
108
|
super.checkInitRequirements();
|
|
@@ -114,13 +110,51 @@ class Web3Auth extends Web3AuthNoModal {
|
|
|
114
110
|
}
|
|
115
111
|
async initModal(params) {
|
|
116
112
|
super.checkInitRequirements();
|
|
113
|
+
let projectConfig;
|
|
114
|
+
try {
|
|
115
|
+
projectConfig = await fetchProjectConfig(this.options.clientId);
|
|
116
|
+
} catch (e) {
|
|
117
|
+
throw WalletInitializationError.notReady("failed to fetch project configurations");
|
|
118
|
+
}
|
|
119
|
+
const {
|
|
120
|
+
whitelabel
|
|
121
|
+
} = projectConfig;
|
|
122
|
+
this.options.uiConfig = merge(clonedeep(whitelabel), this.options.uiConfig);
|
|
123
|
+
if (!this.options.uiConfig.defaultLanguage) this.options.uiConfig.defaultLanguage = getUserLanguage(this.options.uiConfig.defaultLanguage);
|
|
124
|
+
if (!this.options.uiConfig.mode) this.options.uiConfig.mode = "auto";
|
|
125
|
+
this.loginModal = new LoginModal(_objectSpread(_objectSpread({}, this.options.uiConfig), {}, {
|
|
126
|
+
adapterListener: this
|
|
127
|
+
}));
|
|
128
|
+
this.subscribeToLoginModalEvents();
|
|
129
|
+
const {
|
|
130
|
+
sms_otp_enabled: smsOtpEnabled
|
|
131
|
+
} = projectConfig;
|
|
132
|
+
if (smsOtpEnabled !== undefined) {
|
|
133
|
+
var _params;
|
|
134
|
+
const adapterConfig = {
|
|
135
|
+
[WALLET_ADAPTERS.OPENLOGIN]: {
|
|
136
|
+
label: WALLET_ADAPTERS.OPENLOGIN,
|
|
137
|
+
loginMethods: {
|
|
138
|
+
sms_passwordless: {
|
|
139
|
+
name: "sms_passwordless",
|
|
140
|
+
showOnModal: smsOtpEnabled,
|
|
141
|
+
showOnDesktop: smsOtpEnabled,
|
|
142
|
+
showOnMobile: smsOtpEnabled
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
};
|
|
147
|
+
if (!((_params = params) !== null && _params !== void 0 && _params.modalConfig)) params = {
|
|
148
|
+
modalConfig: {}
|
|
149
|
+
};
|
|
150
|
+
params.modalConfig = merge(clonedeep(params.modalConfig), adapterConfig);
|
|
151
|
+
}
|
|
117
152
|
await this.loginModal.initModal();
|
|
118
153
|
const providedChainConfig = this.options.chainConfig;
|
|
119
|
-
// TODO: get stuff from dashboard here
|
|
120
154
|
// merge default adapters with the custom configured adapters.
|
|
121
155
|
const allAdapters = [...new Set([...Object.keys(this.modalConfig.adapters || {}), ...Object.keys(this.walletAdapters)])];
|
|
122
156
|
const adapterConfigurationPromises = allAdapters.map(async adapterName => {
|
|
123
|
-
var _this$modalConfig$ada,
|
|
157
|
+
var _this$modalConfig$ada, _params2, _this$modalConfig$ada2, _this$modalConfig$ada3;
|
|
124
158
|
// start with the default config of adapter.
|
|
125
159
|
let adapterConfig = ((_this$modalConfig$ada = this.modalConfig.adapters) === null || _this$modalConfig$ada === void 0 ? void 0 : _this$modalConfig$ada[adapterName]) || {
|
|
126
160
|
label: adapterName,
|
|
@@ -130,7 +164,7 @@ class Web3Auth extends Web3AuthNoModal {
|
|
|
130
164
|
};
|
|
131
165
|
|
|
132
166
|
// override the default config of adapter if some config is being provided by the user.
|
|
133
|
-
if (params !== null &&
|
|
167
|
+
if ((_params2 = params) !== null && _params2 !== void 0 && (_params2 = _params2.modalConfig) !== null && _params2 !== void 0 && _params2[adapterName]) {
|
|
134
168
|
adapterConfig = _objectSpread(_objectSpread({}, adapterConfig), params.modalConfig[adapterName]);
|
|
135
169
|
}
|
|
136
170
|
this.modalConfig.adapters[adapterName] = adapterConfig;
|
|
@@ -224,24 +258,39 @@ class Web3Auth extends Web3AuthNoModal {
|
|
|
224
258
|
}
|
|
225
259
|
} else if (adapterName === WALLET_ADAPTERS.WALLET_CONNECT_V2) {
|
|
226
260
|
const walletConnectAdapter = this.walletAdapters[adapterName];
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
261
|
+
const {
|
|
262
|
+
wallet_connect_enabled: walletConnectEnabled,
|
|
263
|
+
wallet_connect_project_id: walletConnectProjectId
|
|
264
|
+
} = projectConfig;
|
|
265
|
+
if (walletConnectEnabled === false) {
|
|
266
|
+
var _this$modalConfig$ada5, _this$modalConfig$ada6, _this$modalConfig$ada7;
|
|
267
|
+
// override user specified config by hiding wallet connect
|
|
268
|
+
this.modalConfig.adapters = _objectSpread(_objectSpread({}, (_this$modalConfig$ada5 = this.modalConfig.adapters) !== null && _this$modalConfig$ada5 !== void 0 ? _this$modalConfig$ada5 : {}), {}, {
|
|
269
|
+
[WALLET_ADAPTERS.WALLET_CONNECT_V2]: _objectSpread(_objectSpread({}, (_this$modalConfig$ada6 = (_this$modalConfig$ada7 = this.modalConfig.adapters) === null || _this$modalConfig$ada7 === void 0 ? void 0 : _this$modalConfig$ada7[WALLET_ADAPTERS.WALLET_CONNECT_V2]) !== null && _this$modalConfig$ada6 !== void 0 ? _this$modalConfig$ada6 : {}), {}, {
|
|
270
|
+
showOnModal: false
|
|
271
|
+
})
|
|
272
|
+
});
|
|
273
|
+
this.modalConfig.adapters[WALLET_ADAPTERS.WALLET_CONNECT_V2].showOnModal = false;
|
|
274
|
+
} else {
|
|
275
|
+
if (!walletConnectProjectId) throw WalletInitializationError.invalidParams("Invalid wallet connect project id. Please configure it on the dashboard");
|
|
276
|
+
walletConnectAdapter.setAdapterSettings({
|
|
277
|
+
adapterSettings: {
|
|
278
|
+
walletConnectInitOptions: {
|
|
279
|
+
projectId: walletConnectProjectId
|
|
280
|
+
}
|
|
232
281
|
}
|
|
233
|
-
}
|
|
234
|
-
}
|
|
282
|
+
});
|
|
283
|
+
}
|
|
235
284
|
}
|
|
236
285
|
return adapterName;
|
|
237
286
|
}
|
|
238
287
|
});
|
|
239
288
|
const adapterNames = await Promise.all(adapterConfigurationPromises);
|
|
240
289
|
const hasInAppWallets = Object.values(this.walletAdapters).some(adapter => {
|
|
241
|
-
var _this$modalConfig$
|
|
290
|
+
var _this$modalConfig$ada8, _this$modalConfig$ada9, _adapter$name;
|
|
242
291
|
if (adapter.type !== ADAPTER_CATEGORY.IN_APP) return false;
|
|
243
|
-
if (((_this$modalConfig$
|
|
244
|
-
if (!((_this$modalConfig$
|
|
292
|
+
if (((_this$modalConfig$ada8 = this.modalConfig.adapters) === null || _this$modalConfig$ada8 === void 0 || (_this$modalConfig$ada8 = _this$modalConfig$ada8[adapter.name]) === null || _this$modalConfig$ada8 === void 0 ? void 0 : _this$modalConfig$ada8.showOnModal) !== true) return false;
|
|
293
|
+
if (!((_this$modalConfig$ada9 = this.modalConfig.adapters) !== null && _this$modalConfig$ada9 !== void 0 && (_this$modalConfig$ada9 = _this$modalConfig$ada9[adapter.name]) !== null && _this$modalConfig$ada9 !== void 0 && _this$modalConfig$ada9.loginMethods)) return true;
|
|
245
294
|
const mergedLoginMethods = getAdapterSocialLogins(adapter.name, (_adapter$name = this.modalConfig.adapters[adapter.name]) === null || _adapter$name === void 0 ? void 0 : _adapter$name.loginMethods);
|
|
246
295
|
if (Object.values(mergedLoginMethods).some(method => method.showOnModal)) return true;
|
|
247
296
|
return false;
|
|
@@ -279,8 +328,8 @@ class Web3Auth extends Web3AuthNoModal {
|
|
|
279
328
|
this.status = ADAPTER_STATUS.READY;
|
|
280
329
|
await Promise.all(initPromises);
|
|
281
330
|
const hasExternalWallets = allAdapters.some(adapterName => {
|
|
282
|
-
var _this$walletAdapters$, _this$modalConfig$
|
|
283
|
-
return ((_this$walletAdapters$ = this.walletAdapters[adapterName]) === null || _this$walletAdapters$ === void 0 ? void 0 : _this$walletAdapters$.type) === ADAPTER_CATEGORY.EXTERNAL && ((_this$modalConfig$
|
|
331
|
+
var _this$walletAdapters$, _this$modalConfig$ada10;
|
|
332
|
+
return ((_this$walletAdapters$ = this.walletAdapters[adapterName]) === null || _this$walletAdapters$ === void 0 ? void 0 : _this$walletAdapters$.type) === ADAPTER_CATEGORY.EXTERNAL && ((_this$modalConfig$ada10 = this.modalConfig.adapters) === null || _this$modalConfig$ada10 === void 0 ? void 0 : _this$modalConfig$ada10[adapterName].showOnModal);
|
|
284
333
|
});
|
|
285
334
|
if (hasExternalWallets) {
|
|
286
335
|
this.loginModal.initExternalWalletContainer();
|
|
@@ -296,7 +345,7 @@ class Web3Auth extends Web3AuthNoModal {
|
|
|
296
345
|
}
|
|
297
346
|
}
|
|
298
347
|
async connect() {
|
|
299
|
-
|
|
348
|
+
if (!this.loginModal) throw new Error("Login modal is not initialized");
|
|
300
349
|
// if already connected return provider
|
|
301
350
|
if (this.connectedAdapterName && this.status === ADAPTER_STATUS.CONNECTED && this.provider) return this.provider;
|
|
302
351
|
this.loginModal.open();
|
|
@@ -401,4 +450,3 @@ class Web3Auth extends Web3AuthNoModal {
|
|
|
401
450
|
}
|
|
402
451
|
|
|
403
452
|
export { Web3Auth, defaultEvmDappModalConfig, defaultEvmWalletModalConfig, defaultOtherModalConfig, defaultSolanaDappModalConfig, defaultSolanaWalletModalConfig };
|
|
404
|
-
//# sourceMappingURL=modal.esm.js.map
|