UNPKG

@web3auth/web3auth

Version:

[![npm version](https://img.shields.io/npm/v/@web3auth/web3auth?label=%22%22)](https://www.npmjs.com/package/@web3auth/web3auth/v/latest) [![minzip](https://img.shields.io/bundlephobia/minzip/@web3auth/web3auth?label=%22%22)](https://bundlephobia.com/resu

839 lines (699 loc) 37.5 kB
import _defineProperty from '@babel/runtime/helpers/defineProperty'; import { CHAIN_NAMESPACES, SOLANA_ADAPTERS, EVM_ADAPTERS, WALLET_ADAPTERS, getChainConfig, ADAPTER_CATEGORY, log, ADAPTER_STATUS, ADAPTER_EVENTS } from '@web3auth/base'; import _toConsumableArray from '@babel/runtime/helpers/toConsumableArray'; import _asyncToGenerator from '@babel/runtime/helpers/asyncToGenerator'; import _classCallCheck from '@babel/runtime/helpers/classCallCheck'; import _createClass from '@babel/runtime/helpers/createClass'; import _assertThisInitialized from '@babel/runtime/helpers/assertThisInitialized'; import _get from '@babel/runtime/helpers/get'; import _inherits from '@babel/runtime/helpers/inherits'; import _possibleConstructorReturn from '@babel/runtime/helpers/possibleConstructorReturn'; import _getPrototypeOf from '@babel/runtime/helpers/getPrototypeOf'; import _regeneratorRuntime from '@babel/runtime/regenerator'; import { Web3AuthCore } from '@web3auth/core'; import LoginModal, { getAdapterSocialLogins, OPENLOGIN_PROVIDERS, LOGIN_MODAL_EVENTS } from '@web3auth/ui'; var _adapters, _adapters2; var defaultSolanaDappModalConfig = { chainNamespace: CHAIN_NAMESPACES.SOLANA, adapters: (_adapters = {}, _defineProperty(_adapters, SOLANA_ADAPTERS.TORUS_SOLANA, { label: "Torus Wallet", showOnModal: true, showOnMobile: true, showOnDesktop: true }), _defineProperty(_adapters, SOLANA_ADAPTERS.OPENLOGIN, { label: "OpenLogin", showOnModal: true, showOnMobile: true, showOnDesktop: true }), _defineProperty(_adapters, SOLANA_ADAPTERS.PHANTOM, { label: "Phantom", showOnModal: true, showOnMobile: true, showOnDesktop: true }), _adapters) }; var defaultEvmDappModalConfig = { chainNamespace: CHAIN_NAMESPACES.EIP155, adapters: (_adapters2 = {}, _defineProperty(_adapters2, EVM_ADAPTERS.TORUS_EVM, { label: "Torus Wallet", showOnModal: true, showOnMobile: true, showOnDesktop: true }), _defineProperty(_adapters2, EVM_ADAPTERS.METAMASK, { label: "MetaMask", showOnModal: true, showOnMobile: true, showOnDesktop: true }), _defineProperty(_adapters2, EVM_ADAPTERS.OPENLOGIN, { label: "OpenLogin", showOnModal: true, showOnMobile: true, showOnDesktop: true }), _defineProperty(_adapters2, EVM_ADAPTERS.WALLET_CONNECT_V1, { label: "Wallet Connect", showOnModal: true, showOnMobile: true, showOnDesktop: true }), _adapters2) }; var defaultSolanaWalletModalConfig = { chainNamespace: CHAIN_NAMESPACES.SOLANA, adapters: _defineProperty({}, SOLANA_ADAPTERS.OPENLOGIN, { label: "OpenLogin", showOnModal: true, showOnMobile: true, showOnDesktop: true }) }; var defaultEvmWalletModalConfig = { chainNamespace: CHAIN_NAMESPACES.EIP155, adapters: _defineProperty({}, EVM_ADAPTERS.OPENLOGIN, { label: "OpenLogin", showOnModal: true, showOnMobile: true, showOnDesktop: true }) }; var defaultOtherModalConfig = { chainNamespace: CHAIN_NAMESPACES.OTHER, adapters: _defineProperty({}, EVM_ADAPTERS.OPENLOGIN, { label: "OpenLogin", showOnModal: true, showOnMobile: true, showOnDesktop: true }) }; function ownKeys$1(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; } function _objectSpread$1(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$1(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$1(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; } var getDefaultAdapterModule = /*#__PURE__*/function () { var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(params) { var name, customChainConfig, clientId, finalChainConfig, _yield$import, TorusWalletAdapter, adapter, _yield$import2, SolanaWalletAdapter, _adapter, _yield$import3, MetamaskAdapter, _adapter2, _yield$import4, PhantomAdapter, _adapter3, _yield$import5, WalletConnectV1Adapter, _adapter4, _yield$import6, OpenloginAdapter, getOpenloginDefaultOptions, defaultOptions, _adapter5; return _regeneratorRuntime.wrap(function _callee$(_context) { while (1) { switch (_context.prev = _context.next) { case 0: name = params.name, customChainConfig = params.customChainConfig, clientId = params.clientId; if (Object.values(CHAIN_NAMESPACES).includes(customChainConfig.chainNamespace)) { _context.next = 3; break; } throw new Error("Invalid chainNamespace: ".concat(customChainConfig.chainNamespace)); case 3: finalChainConfig = _objectSpread$1(_objectSpread$1({}, getChainConfig(customChainConfig.chainNamespace, customChainConfig === null || customChainConfig === void 0 ? void 0 : customChainConfig.chainId)), customChainConfig || {}); if (!(name === WALLET_ADAPTERS.TORUS_EVM)) { _context.next = 13; break; } _context.next = 7; return import('@web3auth/torus-evm-adapter'); case 7: _yield$import = _context.sent; TorusWalletAdapter = _yield$import.TorusWalletAdapter; adapter = new TorusWalletAdapter({ chainConfig: finalChainConfig, clientId: clientId }); return _context.abrupt("return", adapter); case 13: if (!(name === WALLET_ADAPTERS.TORUS_SOLANA)) { _context.next = 22; break; } _context.next = 16; return import('@web3auth/torus-solana-adapter'); case 16: _yield$import2 = _context.sent; SolanaWalletAdapter = _yield$import2.SolanaWalletAdapter; _adapter = new SolanaWalletAdapter({ chainConfig: finalChainConfig, clientId: clientId }); return _context.abrupt("return", _adapter); case 22: if (!(name === WALLET_ADAPTERS.METAMASK)) { _context.next = 31; break; } _context.next = 25; return import('@web3auth/metamask-adapter'); case 25: _yield$import3 = _context.sent; MetamaskAdapter = _yield$import3.MetamaskAdapter; _adapter2 = new MetamaskAdapter({ chainConfig: finalChainConfig, clientId: clientId }); return _context.abrupt("return", _adapter2); case 31: if (!(name === WALLET_ADAPTERS.PHANTOM)) { _context.next = 40; break; } _context.next = 34; return import('@web3auth/phantom-adapter'); case 34: _yield$import4 = _context.sent; PhantomAdapter = _yield$import4.PhantomAdapter; _adapter3 = new PhantomAdapter({ chainConfig: finalChainConfig, clientId: clientId }); return _context.abrupt("return", _adapter3); case 40: if (!(name === WALLET_ADAPTERS.WALLET_CONNECT_V1)) { _context.next = 49; break; } _context.next = 43; return import('@web3auth/wallet-connect-v1-adapter'); case 43: _yield$import5 = _context.sent; WalletConnectV1Adapter = _yield$import5.WalletConnectV1Adapter; _adapter4 = new WalletConnectV1Adapter({ chainConfig: finalChainConfig, clientId: clientId }); return _context.abrupt("return", _adapter4); case 49: if (!(name === WALLET_ADAPTERS.OPENLOGIN)) { _context.next = 58; break; } _context.next = 52; return import('@web3auth/openlogin-adapter'); case 52: _yield$import6 = _context.sent; OpenloginAdapter = _yield$import6.OpenloginAdapter; getOpenloginDefaultOptions = _yield$import6.getOpenloginDefaultOptions; defaultOptions = getOpenloginDefaultOptions(customChainConfig.chainNamespace, customChainConfig === null || customChainConfig === void 0 ? void 0 : customChainConfig.chainId); _adapter5 = new OpenloginAdapter(_objectSpread$1(_objectSpread$1({}, defaultOptions), {}, { chainConfig: _objectSpread$1(_objectSpread$1({}, defaultOptions.chainConfig || {}), finalChainConfig), adapterSettings: _objectSpread$1(_objectSpread$1({}, defaultOptions.adapterSettings), {}, { clientId: clientId }) })); return _context.abrupt("return", _adapter5); case 58: throw new Error("Invalid wallet adapter name"); case 59: case "end": return _context.stop(); } } }, _callee); })); return function getDefaultAdapterModule(_x) { return _ref.apply(this, arguments); }; }(); function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; } function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; } function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } var Web3Auth = /*#__PURE__*/function (_Web3AuthCore) { _inherits(Web3Auth, _Web3AuthCore); var _super = _createSuper(Web3Auth); function Web3Auth(options) { var _this$options$uiConfi, _this$options$uiConfi2; var _this; _classCallCheck(this, Web3Auth); _this = _super.call(this, options); _defineProperty(_assertThisInitialized(_this), "loginModal", void 0); _defineProperty(_assertThisInitialized(_this), "options", void 0); _defineProperty(_assertThisInitialized(_this), "modalConfig", defaultEvmDappModalConfig); _this.options = _objectSpread({}, options); var providedChainConfig = _this.options.chainConfig; if (providedChainConfig.chainNamespace === CHAIN_NAMESPACES.SOLANA) { if (options.authMode === "WALLET") { // default config for solana wallet modal _this.modalConfig = defaultSolanaWalletModalConfig; } else { // default config for solana dapp modal _this.modalConfig = defaultSolanaDappModalConfig; } } else if (providedChainConfig.chainNamespace === CHAIN_NAMESPACES.EIP155) { if (options.authMode === "WALLET") { // default config for evm wallet modal _this.modalConfig = defaultEvmWalletModalConfig; } else { // default config for evm dapp modal _this.modalConfig = defaultEvmDappModalConfig; } } else if (providedChainConfig.chainNamespace === CHAIN_NAMESPACES.OTHER) { _this.modalConfig = defaultOtherModalConfig; } else { throw new Error("Invalid chainNamespace provided: ".concat(providedChainConfig.chainNamespace)); } _this.loginModal = new LoginModal({ theme: (_this$options$uiConfi = _this.options.uiConfig) === null || _this$options$uiConfi === void 0 ? void 0 : _this$options$uiConfi.theme, appLogo: ((_this$options$uiConfi2 = _this.options.uiConfig) === null || _this$options$uiConfi2 === void 0 ? void 0 : _this$options$uiConfi2.appLogo) || "", version: "", adapterListener: _assertThisInitialized(_this), displayErrorsOnModal: _this.options.displayErrorsOnModal }); _this.subscribeToLoginModalEvents(); return _this; } _createClass(Web3Auth, [{ key: "initModal", value: function () { var _initModal = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee3(params) { var _this2 = this; var providedChainConfig, allAdapters, adapterConfigurationPromises, adapterNames, hasInAppWallets, initPromises, hasExternalWallets; return _regeneratorRuntime.wrap(function _callee3$(_context3) { while (1) { switch (_context3.prev = _context3.next) { case 0: _get(_getPrototypeOf(Web3Auth.prototype), "checkInitRequirements", this).call(this); _context3.next = 3; return this.loginModal.initModal(); case 3: providedChainConfig = this.options.chainConfig; // merge default adapters with the custom configured adapters. allAdapters = _toConsumableArray(new Set([].concat(_toConsumableArray(Object.keys(this.modalConfig.adapters || {})), _toConsumableArray(Object.keys(this.walletAdapters))))); adapterConfigurationPromises = allAdapters.map( /*#__PURE__*/function () { var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(adapterName) { var _this2$modalConfig$ad, _params$modalConfig, _this2$modalConfig$ad2, _this2$modalConfig$ad3; var adapterConfig, adapter, ad, _this2$modalConfig$ad4, _this2$coreOptions$ch, chainConfig; return _regeneratorRuntime.wrap(function _callee$(_context) { while (1) { switch (_context.prev = _context.next) { case 0: // start with the default config of adapter. adapterConfig = ((_this2$modalConfig$ad = _this2.modalConfig.adapters) === null || _this2$modalConfig$ad === void 0 ? void 0 : _this2$modalConfig$ad[adapterName]) || { label: adapterName, showOnModal: true, showOnMobile: true, showOnDesktop: true }; // override the default config of adapter if some config is being provided by the user. if (params !== null && params !== void 0 && (_params$modalConfig = params.modalConfig) !== null && _params$modalConfig !== void 0 && _params$modalConfig[adapterName]) { adapterConfig = _objectSpread(_objectSpread({}, adapterConfig), params.modalConfig[adapterName]); } _this2.modalConfig.adapters[adapterName] = adapterConfig; // check if adapter is configured/added by user and exist in walletAdapters map. adapter = _this2.walletAdapters[adapterName]; log.debug("adapter config", adapterName, (_this2$modalConfig$ad2 = _this2.modalConfig.adapters) === null || _this2$modalConfig$ad2 === void 0 ? void 0 : _this2$modalConfig$ad2[adapterName].showOnModal, adapter); // if adapter is not custom configured then check if it is available in default adapters. // and if adapter is not hidden by user if (!(!adapter && (_this2$modalConfig$ad3 = _this2.modalConfig.adapters) !== null && _this2$modalConfig$ad3 !== void 0 && _this2$modalConfig$ad3[adapterName].showOnModal)) { _context.next = 13; break; } _context.next = 8; return getDefaultAdapterModule({ name: adapterName, customChainConfig: _this2.options.chainConfig, clientId: _this2.options.clientId }); case 8: ad = _context.sent; _this2.walletAdapters[adapterName] = ad; return _context.abrupt("return", adapterName); case 13: 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 === _this2.cachedAdapter)) { _context.next = 19; break; } if ((_this2$modalConfig$ad4 = _this2.modalConfig.adapters) !== null && _this2$modalConfig$ad4 !== void 0 && _this2$modalConfig$ad4[adapterName].showOnModal) { _context.next = 16; break; } return _context.abrupt("return"); case 16: // add client id to adapter, same web3auth client id can be used in adapter. // this id is being overridden if user is also passing client id in adapter's constructor. _this2.walletAdapters[adapterName].setAdapterSettings({ clientId: _this2.options.clientId, sessionTime: _this2.options.sessionTime }); // if adapter doesn't have any chainConfig then we will set the chainConfig based of passed chainNamespace // and chainNamespace. if (!adapter.chainConfigProxy) { chainConfig = _objectSpread(_objectSpread({}, getChainConfig(providedChainConfig.chainNamespace, (_this2$coreOptions$ch = _this2.coreOptions.chainConfig) === null || _this2$coreOptions$ch === void 0 ? void 0 : _this2$coreOptions$ch.chainId)), _this2.coreOptions.chainConfig); _this2.walletAdapters[adapterName].setChainConfig(chainConfig); } return _context.abrupt("return", adapterName); case 19: case "end": return _context.stop(); } } }, _callee); })); return function (_x2) { return _ref.apply(this, arguments); }; }()); _context3.next = 8; return Promise.all(adapterConfigurationPromises); case 8: adapterNames = _context3.sent; hasInAppWallets = Object.values(this.walletAdapters).some(function (adapter) { var _this2$modalConfig$ad5; if (adapter.type !== ADAPTER_CATEGORY.IN_APP) return false; if (_this2.modalConfig.adapters[adapter.name].showOnModal !== true) return false; if (!_this2.modalConfig.adapters[adapter.name].loginMethods) return true; var mergedLoginMethods = getAdapterSocialLogins(adapter.name, _this2.walletAdapters[adapter.name], (_this2$modalConfig$ad5 = _this2.modalConfig.adapters[adapter.name]) === null || _this2$modalConfig$ad5 === void 0 ? void 0 : _this2$modalConfig$ad5.loginMethods); if (Object.values(mergedLoginMethods).some(function (method) { return method.showOnModal; })) return true; return false; }); log.debug(hasInAppWallets, this.walletAdapters, "hasInAppWallets"); // Now, initialize the adapters. initPromises = adapterNames.map( /*#__PURE__*/function () { var _ref2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2(adapterName) { var adapter; return _regeneratorRuntime.wrap(function _callee2$(_context2) { while (1) { switch (_context2.prev = _context2.next) { case 0: if (adapterName) { _context2.next = 2; break; } return _context2.abrupt("return"); case 2: _context2.prev = 2; adapter = _this2.walletAdapters[adapterName]; // only initialize a external adapter here if it is a cached adapter. if (!(_this2.cachedAdapter !== adapterName && adapter.type === ADAPTER_CATEGORY.EXTERNAL)) { _context2.next = 6; break; } return _context2.abrupt("return"); case 6: // in-app wallets or cached wallet (being connected or already connected) are initialized first. // if adapter is configured thn only initialize in app or cached adapter. // external wallets are initialized on INIT_EXTERNAL_WALLET event. _this2.subscribeToAdapterEvents(adapter); if (!(adapter.status === ADAPTER_STATUS.NOT_READY)) { _context2.next = 10; break; } _context2.next = 10; return adapter.init({ autoConnect: _this2.cachedAdapter === adapterName }); case 10: // note: not adding cachedWallet to modal if it is external wallet. // adding it later if no in-app wallets are available. if (adapter.type === ADAPTER_CATEGORY.IN_APP) { _this2.initializeInAppWallet(adapterName); } _context2.next = 16; break; case 13: _context2.prev = 13; _context2.t0 = _context2["catch"](2); log.error(_context2.t0, "error while initializing adapter"); case 16: case "end": return _context2.stop(); } } }, _callee2, null, [[2, 13]]); })); return function (_x3) { return _ref2.apply(this, arguments); }; }()); this.status = ADAPTER_STATUS.READY; _context3.next = 15; return Promise.all(initPromises); case 15: hasExternalWallets = allAdapters.some(function (adapterName) { var _this2$walletAdapters, _this2$modalConfig$ad6; return ((_this2$walletAdapters = _this2.walletAdapters[adapterName]) === null || _this2$walletAdapters === void 0 ? void 0 : _this2$walletAdapters.type) === ADAPTER_CATEGORY.EXTERNAL && ((_this2$modalConfig$ad6 = _this2.modalConfig.adapters) === null || _this2$modalConfig$ad6 === void 0 ? void 0 : _this2$modalConfig$ad6[adapterName].showOnModal); }); if (hasExternalWallets) { this.loginModal.initExternalWalletContainer(); } // variable to check if we have any in app wallets // currently all default in app and external wallets can be hidden or shown based on config. if (!(!hasInAppWallets && hasExternalWallets)) { _context3.next = 20; break; } _context3.next = 20; return this.initExternalWalletAdapters(false, { showExternalWalletsOnly: true }); case 20: case "end": return _context3.stop(); } } }, _callee3, this); })); function initModal(_x) { return _initModal.apply(this, arguments); } return initModal; }() }, { key: "connect", value: function () { var _connect = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee4() { var _this3 = this; return _regeneratorRuntime.wrap(function _callee4$(_context4) { while (1) { switch (_context4.prev = _context4.next) { case 0: if (!this.provider) { _context4.next = 2; break; } return _context4.abrupt("return", this.provider); case 2: this.loginModal.open(); return _context4.abrupt("return", new Promise(function (resolve, reject) { _this3.once(ADAPTER_EVENTS.CONNECTED, function () { return resolve(_this3.provider); }); _this3.once(ADAPTER_EVENTS.ERRORED, function (err) { return reject(err); }); })); case 4: case "end": return _context4.stop(); } } }, _callee4, this); })); function connect() { return _connect.apply(this, arguments); } return connect; }() }, { key: "initExternalWalletAdapters", value: function () { var _initExternalWalletAdapters = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee6(externalWalletsInitialized, options) { var _this4 = this; var adaptersConfig, adaptersData, adapterPromises, adapterInitResults, finalAdaptersConfig; return _regeneratorRuntime.wrap(function _callee6$(_context6) { while (1) { switch (_context6.prev = _context6.next) { case 0: if (!externalWalletsInitialized) { _context6.next = 2; break; } return _context6.abrupt("return"); case 2: adaptersConfig = {}; adaptersData = {}; adapterPromises = Object.keys(this.walletAdapters).map( /*#__PURE__*/function () { var _ref3 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee5(adapterName) { var adapter; return _regeneratorRuntime.wrap(function _callee5$(_context5) { while (1) { switch (_context5.prev = _context5.next) { case 0: _context5.prev = 0; adapter = _this4.walletAdapters[adapterName]; if (!((adapter === null || adapter === void 0 ? void 0 : adapter.type) === ADAPTER_CATEGORY.EXTERNAL)) { _context5.next = 11; break; } log.debug("init external wallet", _this4.cachedAdapter, adapterName); _this4.subscribeToAdapterEvents(adapter); // we are not initializing cached adapter here as it is already being initialized in initModal before. if (!(_this4.cachedAdapter === adapterName)) { _context5.next = 7; break; } return _context5.abrupt("return"); case 7: if (!(adapter.status === ADAPTER_STATUS.NOT_READY)) { _context5.next = 11; break; } _context5.next = 10; return Promise.race([adapter.init({ autoConnect: _this4.cachedAdapter === adapterName }).then(function () { adaptersConfig[adapterName] = _this4.modalConfig.adapters[adapterName]; adaptersData[adapterName] = adapter.adapterData || {}; return adapterName; }), new Promise(function (resolve) { setTimeout(function () { return resolve(null); }, 5000); })]); case 10: return _context5.abrupt("return", _context5.sent); case 11: _context5.next = 16; break; case 13: _context5.prev = 13; _context5.t0 = _context5["catch"](0); log.error(_context5.t0, "error while initializing adapter"); case 16: case "end": return _context5.stop(); } } }, _callee5, null, [[0, 13]]); })); return function (_x6) { return _ref3.apply(this, arguments); }; }()); _context6.next = 7; return Promise.all(adapterPromises); case 7: adapterInitResults = _context6.sent; finalAdaptersConfig = {}; adapterInitResults.forEach(function (result) { if (result) { finalAdaptersConfig[result] = adaptersConfig[result]; } }); this.loginModal.addWalletLogins(finalAdaptersConfig, { showExternalWalletsOnly: !!(options !== null && options !== void 0 && options.showExternalWalletsOnly) }); case 11: case "end": return _context6.stop(); } } }, _callee6, this); })); function initExternalWalletAdapters(_x4, _x5) { return _initExternalWalletAdapters.apply(this, arguments); } return initExternalWalletAdapters; }() }, { key: "initializeInAppWallet", value: function initializeInAppWallet(adapterName) { log.info("adapterInitResults", adapterName); if (this.walletAdapters[adapterName].type === ADAPTER_CATEGORY.IN_APP) { var _this$modalConfig$ada, _this$options$uiConfi3; this.loginModal.addSocialLogins(adapterName, getAdapterSocialLogins(adapterName, this.walletAdapters[adapterName], (_this$modalConfig$ada = this.modalConfig.adapters[adapterName]) === null || _this$modalConfig$ada === void 0 ? void 0 : _this$modalConfig$ada.loginMethods), ((_this$options$uiConfi3 = this.options.uiConfig) === null || _this$options$uiConfi3 === void 0 ? void 0 : _this$options$uiConfi3.loginMethodsOrder) || OPENLOGIN_PROVIDERS); } } }, { key: "subscribeToLoginModalEvents", value: function subscribeToLoginModalEvents() { var _this5 = this; this.loginModal.on(LOGIN_MODAL_EVENTS.LOGIN, /*#__PURE__*/function () { var _ref4 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee7(params) { return _regeneratorRuntime.wrap(function _callee7$(_context7) { while (1) { switch (_context7.prev = _context7.next) { case 0: _context7.prev = 0; _context7.next = 3; return _this5.connectTo(params.adapter, params.loginParams); case 3: _context7.next = 8; break; case 5: _context7.prev = 5; _context7.t0 = _context7["catch"](0); log.error("Error while connecting to adapter: ".concat(params.adapter), _context7.t0); case 8: case "end": return _context7.stop(); } } }, _callee7, null, [[0, 5]]); })); return function (_x7) { return _ref4.apply(this, arguments); }; }()); this.loginModal.on(LOGIN_MODAL_EVENTS.INIT_EXTERNAL_WALLETS, /*#__PURE__*/function () { var _ref5 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee8(params) { return _regeneratorRuntime.wrap(function _callee8$(_context8) { while (1) { switch (_context8.prev = _context8.next) { case 0: _context8.next = 2; return _this5.initExternalWalletAdapters(params.externalWalletsInitialized); case 2: case "end": return _context8.stop(); } } }, _callee8); })); return function (_x8) { return _ref5.apply(this, arguments); }; }()); this.loginModal.on(LOGIN_MODAL_EVENTS.DISCONNECT, /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee9() { return _regeneratorRuntime.wrap(function _callee9$(_context9) { while (1) { switch (_context9.prev = _context9.next) { case 0: _context9.prev = 0; _context9.next = 3; return _this5.logout(); case 3: _context9.next = 8; break; case 5: _context9.prev = 5; _context9.t0 = _context9["catch"](0); log.error("Error while disconnecting", _context9.t0); case 8: case "end": return _context9.stop(); } } }, _callee9, null, [[0, 5]]); }))); this.loginModal.on(LOGIN_MODAL_EVENTS.MODAL_VISIBILITY, /*#__PURE__*/function () { var _ref7 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee10(visibility) { var _this5$walletAdapters; var walletConnectStatus; return _regeneratorRuntime.wrap(function _callee10$(_context10) { while (1) { switch (_context10.prev = _context10.next) { case 0: log.debug("is login modal visible", visibility); _this5.emit(LOGIN_MODAL_EVENTS.MODAL_VISIBILITY, visibility); walletConnectStatus = (_this5$walletAdapters = _this5.walletAdapters[WALLET_ADAPTERS.WALLET_CONNECT_V1]) === null || _this5$walletAdapters === void 0 ? void 0 : _this5$walletAdapters.status; if (visibility && walletConnectStatus === ADAPTER_STATUS.READY) { // refreshing session for wallet connect whenever modal is opened. try { _this5.walletAdapters[WALLET_ADAPTERS.WALLET_CONNECT_V1].connect(); } catch (error) { log.error("Error while disconnecting to wallet connect in core", error); } } case 4: case "end": return _context10.stop(); } } }, _callee10); })); return function (_x9) { return _ref7.apply(this, arguments); }; }()); } }]); return Web3Auth; }(Web3AuthCore); export { Web3Auth, defaultEvmDappModalConfig, defaultEvmWalletModalConfig, defaultOtherModalConfig, defaultSolanaDappModalConfig, defaultSolanaWalletModalConfig }; //# sourceMappingURL=web3auth.esm.js.map