@web3auth/modal 5.2.0 → 6.0.0-alpha.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/modal.cjs.js +92 -25
- package/dist/modal.cjs.js.map +1 -1
- package/dist/modal.esm.js +57 -9
- package/dist/modal.esm.js.map +1 -1
- package/dist/modal.umd.min.js +1 -1
- package/dist/modal.umd.min.js.LICENSE.txt +1 -15
- package/dist/modal.umd.min.js.map +1 -1
- package/dist/types/default.d.ts +3 -1
- package/dist/types/utils.d.ts +1 -0
- package/package.json +23 -16
- package/src/config.ts +1 -1
- package/src/default.ts +35 -4
- package/src/modalManager.ts +13 -2
- package/src/utils.ts +1 -0
package/dist/modal.cjs.js
CHANGED
|
@@ -6,11 +6,11 @@
|
|
|
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 */ Jx: () => (/* binding */ defaultSolanaDappModalConfig),
|
|
10
|
+
/* harmony export */ K8: () => (/* binding */ defaultSolanaWalletModalConfig),
|
|
11
|
+
/* harmony export */ OW: () => (/* binding */ defaultEvmDappModalConfig),
|
|
12
|
+
/* harmony export */ ql: () => (/* binding */ defaultEvmWalletModalConfig),
|
|
13
|
+
/* harmony export */ ue: () => (/* binding */ defaultOtherModalConfig)
|
|
14
14
|
/* harmony export */ });
|
|
15
15
|
/* harmony import */ var _web3auth_base__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(612);
|
|
16
16
|
/* harmony import */ var _web3auth_base__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_web3auth_base__WEBPACK_IMPORTED_MODULE_0__);
|
|
@@ -59,7 +59,7 @@ const defaultEvmDappModalConfig = {
|
|
|
59
59
|
showOnMobile: true,
|
|
60
60
|
showOnDesktop: true
|
|
61
61
|
},
|
|
62
|
-
[_web3auth_base__WEBPACK_IMPORTED_MODULE_0__.EVM_ADAPTERS.
|
|
62
|
+
[_web3auth_base__WEBPACK_IMPORTED_MODULE_0__.EVM_ADAPTERS.WALLET_CONNECT_V2]: {
|
|
63
63
|
label: "Wallet Connect",
|
|
64
64
|
showOnModal: true,
|
|
65
65
|
showOnMobile: true,
|
|
@@ -110,14 +110,14 @@ const defaultOtherModalConfig = {
|
|
|
110
110
|
|
|
111
111
|
/***/ }),
|
|
112
112
|
|
|
113
|
-
/***/
|
|
113
|
+
/***/ 593:
|
|
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
|
+
$: () => (/* binding */ Web3Auth)
|
|
121
121
|
});
|
|
122
122
|
|
|
123
123
|
;// CONCATENATED MODULE: external "@babel/runtime/helpers/defineProperty"
|
|
@@ -125,6 +125,8 @@ const defineProperty_namespaceObject = require("@babel/runtime/helpers/definePro
|
|
|
125
125
|
var defineProperty_default = /*#__PURE__*/__webpack_require__.n(defineProperty_namespaceObject);
|
|
126
126
|
// EXTERNAL MODULE: external "@web3auth/base"
|
|
127
127
|
var base_ = __webpack_require__(612);
|
|
128
|
+
;// CONCATENATED MODULE: external "@web3auth/base-provider"
|
|
129
|
+
const base_provider_namespaceObject = require("@web3auth/base-provider");
|
|
128
130
|
;// CONCATENATED MODULE: external "@web3auth/no-modal"
|
|
129
131
|
const no_modal_namespaceObject = require("@web3auth/no-modal");
|
|
130
132
|
;// CONCATENATED MODULE: external "@web3auth/ui"
|
|
@@ -137,6 +139,33 @@ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (O
|
|
|
137
139
|
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_default()(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; }
|
|
138
140
|
|
|
139
141
|
|
|
142
|
+
async function getPrivateKeyProvider(chainConfig) {
|
|
143
|
+
if (chainConfig.chainNamespace === base_.CHAIN_NAMESPACES.SOLANA) {
|
|
144
|
+
const {
|
|
145
|
+
SolanaPrivateKeyProvider
|
|
146
|
+
} = await Promise.resolve(/* import() */).then(__webpack_require__.t.bind(__webpack_require__, 448, 23));
|
|
147
|
+
return new SolanaPrivateKeyProvider({
|
|
148
|
+
config: {
|
|
149
|
+
chainConfig
|
|
150
|
+
}
|
|
151
|
+
});
|
|
152
|
+
} else if (chainConfig.chainNamespace === base_.CHAIN_NAMESPACES.EIP155) {
|
|
153
|
+
const {
|
|
154
|
+
EthereumPrivateKeyProvider
|
|
155
|
+
} = await Promise.resolve(/* import() */).then(__webpack_require__.t.bind(__webpack_require__, 41, 23));
|
|
156
|
+
return new EthereumPrivateKeyProvider({
|
|
157
|
+
config: {
|
|
158
|
+
chainConfig
|
|
159
|
+
}
|
|
160
|
+
});
|
|
161
|
+
} else if (chainConfig.chainNamespace === base_.CHAIN_NAMESPACES.OTHER) {
|
|
162
|
+
// Modal doesn't support ripple provider
|
|
163
|
+
// Can always override this with a custom provider
|
|
164
|
+
return new base_provider_namespaceObject.CommonPrivateKeyProvider();
|
|
165
|
+
}
|
|
166
|
+
throw new Error(`Invalid chainNamespace: ${chainConfig.chainNamespace} found while connecting to wallet`);
|
|
167
|
+
}
|
|
168
|
+
|
|
140
169
|
// warning: this function is not compatible with "OTHER" chain namespace.
|
|
141
170
|
const getDefaultAdapterModule = async params => {
|
|
142
171
|
const {
|
|
@@ -192,15 +221,21 @@ const getDefaultAdapterModule = async params => {
|
|
|
192
221
|
web3AuthNetwork
|
|
193
222
|
});
|
|
194
223
|
return adapter;
|
|
195
|
-
} else if (name === base_.WALLET_ADAPTERS.
|
|
224
|
+
} else if (name === base_.WALLET_ADAPTERS.WALLET_CONNECT_V2) {
|
|
196
225
|
const {
|
|
197
|
-
|
|
198
|
-
} = await Promise.resolve(/* import() */).then(__webpack_require__.t.bind(__webpack_require__,
|
|
199
|
-
const adapter = new
|
|
226
|
+
WalletConnectV2Adapter
|
|
227
|
+
} = await Promise.resolve(/* import() */).then(__webpack_require__.t.bind(__webpack_require__, 253, 23));
|
|
228
|
+
const adapter = new WalletConnectV2Adapter({
|
|
200
229
|
chainConfig: finalChainConfig,
|
|
201
230
|
clientId,
|
|
202
231
|
sessionTime,
|
|
203
|
-
web3AuthNetwork
|
|
232
|
+
web3AuthNetwork,
|
|
233
|
+
adapterSettings: {
|
|
234
|
+
walletConnectInitOptions: {
|
|
235
|
+
// Using a default wallet connect project id for web3auth modal integration
|
|
236
|
+
projectId: "d3c63f19f9582f8ba48e982057eb096b"
|
|
237
|
+
}
|
|
238
|
+
}
|
|
204
239
|
});
|
|
205
240
|
return adapter;
|
|
206
241
|
} else if (name === base_.WALLET_ADAPTERS.OPENLOGIN) {
|
|
@@ -208,6 +243,7 @@ const getDefaultAdapterModule = async params => {
|
|
|
208
243
|
OpenloginAdapter,
|
|
209
244
|
getOpenloginDefaultOptions
|
|
210
245
|
} = await Promise.resolve(/* import() */).then(__webpack_require__.t.bind(__webpack_require__, 683, 23));
|
|
246
|
+
const privateKeyProvider = await getPrivateKeyProvider(finalChainConfig);
|
|
211
247
|
const defaultOptions = getOpenloginDefaultOptions();
|
|
212
248
|
const adapter = new OpenloginAdapter(_objectSpread(_objectSpread({}, defaultOptions), {}, {
|
|
213
249
|
clientId,
|
|
@@ -217,7 +253,8 @@ const getDefaultAdapterModule = async params => {
|
|
|
217
253
|
network: web3AuthNetwork
|
|
218
254
|
}),
|
|
219
255
|
sessionTime,
|
|
220
|
-
web3AuthNetwork
|
|
256
|
+
web3AuthNetwork,
|
|
257
|
+
privateKeyProvider
|
|
221
258
|
}));
|
|
222
259
|
return adapter;
|
|
223
260
|
}
|
|
@@ -232,7 +269,8 @@ const languageMap = {
|
|
|
232
269
|
zh: "mandarin",
|
|
233
270
|
es: "spanish",
|
|
234
271
|
fr: "french",
|
|
235
|
-
pt: "portuguese"
|
|
272
|
+
pt: "portuguese",
|
|
273
|
+
nl: "dutch"
|
|
236
274
|
};
|
|
237
275
|
const getUserLanguage = defaultLanguage => {
|
|
238
276
|
let userLanguage = defaultLanguage;
|
|
@@ -252,6 +290,7 @@ function modalManager_objectSpread(target) { for (var i = 1; i < arguments.lengt
|
|
|
252
290
|
|
|
253
291
|
|
|
254
292
|
|
|
293
|
+
|
|
255
294
|
class Web3Auth extends no_modal_namespaceObject.Web3AuthNoModal {
|
|
256
295
|
constructor(options) {
|
|
257
296
|
var _this$options$uiConfi, _this$options$uiConfi2, _this$options$uiConfi3, _this$options$uiConfi4, _this$options$uiConfi5, _this$options$uiConfi6, _this$options$uiConfi7, _this$options$uiConfi8;
|
|
@@ -359,6 +398,15 @@ class Web3Auth extends no_modal_namespaceObject.Web3AuthNoModal {
|
|
|
359
398
|
chainConfig
|
|
360
399
|
});
|
|
361
400
|
}
|
|
401
|
+
if (adapterName === base_.WALLET_ADAPTERS.OPENLOGIN) {
|
|
402
|
+
const openloginAdapter = this.walletAdapters[adapterName];
|
|
403
|
+
if (!openloginAdapter.privateKeyProvider) {
|
|
404
|
+
const currentPrivateKeyProvider = await getPrivateKeyProvider(openloginAdapter.chainConfigProxy);
|
|
405
|
+
openloginAdapter.setAdapterSettings({
|
|
406
|
+
privateKeyProvider: currentPrivateKeyProvider
|
|
407
|
+
});
|
|
408
|
+
}
|
|
409
|
+
}
|
|
362
410
|
return adapterName;
|
|
363
411
|
}
|
|
364
412
|
});
|
|
@@ -404,6 +452,9 @@ class Web3Auth extends no_modal_namespaceObject.Web3AuthNoModal {
|
|
|
404
452
|
base_.log.error(error, "error while initializing adapter");
|
|
405
453
|
}
|
|
406
454
|
});
|
|
455
|
+
this.commonJRPCProvider = await base_provider_namespaceObject.CommonJRPCProvider.getProviderInstance({
|
|
456
|
+
chainConfig: this.coreOptions.chainConfig
|
|
457
|
+
});
|
|
407
458
|
this.status = base_.ADAPTER_STATUS.READY;
|
|
408
459
|
await Promise.all(initPromises);
|
|
409
460
|
const hasExternalWallets = allAdapters.some(adapterName => {
|
|
@@ -426,7 +477,7 @@ class Web3Auth extends no_modal_namespaceObject.Web3AuthNoModal {
|
|
|
426
477
|
async connect() {
|
|
427
478
|
// if (!this.loginModal.initialized) throw new Error("Login modal is not initialized");
|
|
428
479
|
// if already connected return provider
|
|
429
|
-
if (this.provider) return this.provider;
|
|
480
|
+
if (this.connectedAdapterName && this.status === base_.ADAPTER_STATUS.CONNECTED && this.provider) return this.provider;
|
|
430
481
|
this.loginModal.open();
|
|
431
482
|
return new Promise((resolve, reject) => {
|
|
432
483
|
this.once(base_.ADAPTER_EVENTS.CONNECTED, () => {
|
|
@@ -528,6 +579,14 @@ module.exports = require("@web3auth/base");
|
|
|
528
579
|
|
|
529
580
|
/***/ }),
|
|
530
581
|
|
|
582
|
+
/***/ 41:
|
|
583
|
+
/***/ ((module) => {
|
|
584
|
+
|
|
585
|
+
"use strict";
|
|
586
|
+
module.exports = require("@web3auth/ethereum-provider");
|
|
587
|
+
|
|
588
|
+
/***/ }),
|
|
589
|
+
|
|
531
590
|
/***/ 508:
|
|
532
591
|
/***/ ((module) => {
|
|
533
592
|
|
|
@@ -552,6 +611,14 @@ module.exports = require("@web3auth/phantom-adapter");
|
|
|
552
611
|
|
|
553
612
|
/***/ }),
|
|
554
613
|
|
|
614
|
+
/***/ 448:
|
|
615
|
+
/***/ ((module) => {
|
|
616
|
+
|
|
617
|
+
"use strict";
|
|
618
|
+
module.exports = require("@web3auth/solana-provider");
|
|
619
|
+
|
|
620
|
+
/***/ }),
|
|
621
|
+
|
|
555
622
|
/***/ 546:
|
|
556
623
|
/***/ ((module) => {
|
|
557
624
|
|
|
@@ -568,11 +635,11 @@ module.exports = require("@web3auth/torus-solana-adapter");
|
|
|
568
635
|
|
|
569
636
|
/***/ }),
|
|
570
637
|
|
|
571
|
-
/***/
|
|
638
|
+
/***/ 253:
|
|
572
639
|
/***/ ((module) => {
|
|
573
640
|
|
|
574
641
|
"use strict";
|
|
575
|
-
module.exports = require("@web3auth/wallet-connect-
|
|
642
|
+
module.exports = require("@web3auth/wallet-connect-v2-adapter");
|
|
576
643
|
|
|
577
644
|
/***/ })
|
|
578
645
|
|
|
@@ -680,12 +747,12 @@ var __webpack_exports__ = {};
|
|
|
680
747
|
"use strict";
|
|
681
748
|
__webpack_require__.r(__webpack_exports__);
|
|
682
749
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
683
|
-
/* harmony export */
|
|
684
|
-
/* harmony export */
|
|
685
|
-
/* harmony export */
|
|
686
|
-
/* harmony export */
|
|
687
|
-
/* harmony export */
|
|
688
|
-
/* harmony export */
|
|
750
|
+
/* harmony export */ Web3Auth: () => (/* reexport safe */ _modalManager__WEBPACK_IMPORTED_MODULE_2__.$),
|
|
751
|
+
/* harmony export */ defaultEvmDappModalConfig: () => (/* reexport safe */ _config__WEBPACK_IMPORTED_MODULE_0__.OW),
|
|
752
|
+
/* harmony export */ defaultEvmWalletModalConfig: () => (/* reexport safe */ _config__WEBPACK_IMPORTED_MODULE_0__.ql),
|
|
753
|
+
/* harmony export */ defaultOtherModalConfig: () => (/* reexport safe */ _config__WEBPACK_IMPORTED_MODULE_0__.ue),
|
|
754
|
+
/* harmony export */ defaultSolanaDappModalConfig: () => (/* reexport safe */ _config__WEBPACK_IMPORTED_MODULE_0__.Jx),
|
|
755
|
+
/* harmony export */ defaultSolanaWalletModalConfig: () => (/* reexport safe */ _config__WEBPACK_IMPORTED_MODULE_0__.K8)
|
|
689
756
|
/* harmony export */ });
|
|
690
757
|
/* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(591);
|
|
691
758
|
/* harmony import */ var _interface__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(510);
|
|
@@ -693,7 +760,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
693
760
|
/* harmony reexport (unknown) */ var __WEBPACK_REEXPORT_OBJECT__ = {};
|
|
694
761
|
/* 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__]
|
|
695
762
|
/* harmony reexport (unknown) */ __webpack_require__.d(__webpack_exports__, __WEBPACK_REEXPORT_OBJECT__);
|
|
696
|
-
/* harmony import */ var _modalManager__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(
|
|
763
|
+
/* harmony import */ var _modalManager__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(593);
|
|
697
764
|
|
|
698
765
|
|
|
699
766
|
|
package/dist/modal.cjs.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"modal.cjs.js","mappings":"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","sources":["webpack://@web3auth/modal/./src/config.ts","webpack://@web3auth/modal/external commonjs2 \"@babel/runtime/helpers/defineProperty\"","webpack://@web3auth/modal/external commonjs2 \"@web3auth/no-modal\"","webpack://@web3auth/modal/external commonjs2 \"@web3auth/ui\"","webpack://@web3auth/modal/./src/default.ts","webpack://@web3auth/modal/./src/utils.ts","webpack://@web3auth/modal/./src/modalManager.ts","webpack://@web3auth/modal/external commonjs2 \"@web3auth/base\"","webpack://@web3auth/modal/external commonjs2 \"@web3auth/metamask-adapter\"","webpack://@web3auth/modal/external commonjs2 \"@web3auth/openlogin-adapter\"","webpack://@web3auth/modal/external commonjs2 \"@web3auth/phantom-adapter\"","webpack://@web3auth/modal/external commonjs2 \"@web3auth/torus-evm-adapter\"","webpack://@web3auth/modal/external commonjs2 \"@web3auth/torus-solana-adapter\"","webpack://@web3auth/modal/external commonjs2 \"@web3auth/wallet-connect-v1-adapter\"","webpack://@web3auth/modal/webpack/bootstrap","webpack://@web3auth/modal/webpack/runtime/compat get default export","webpack://@web3auth/modal/webpack/runtime/create fake namespace object","webpack://@web3auth/modal/webpack/runtime/define property getters","webpack://@web3auth/modal/webpack/runtime/hasOwnProperty shorthand","webpack://@web3auth/modal/webpack/runtime/make namespace object","webpack://@web3auth/modal/./src/index.ts"],"sourcesContent":["import { CHAIN_NAMESPACES, EVM_ADAPTERS, SOLANA_ADAPTERS } from \"@web3auth/base\";\n\nimport { AdaptersModalConfig } from \"./interface\";\n\nexport const defaultSolanaDappModalConfig: AdaptersModalConfig = {\n chainNamespace: CHAIN_NAMESPACES.SOLANA,\n adapters: {\n [SOLANA_ADAPTERS.TORUS_SOLANA]: {\n label: \"Torus Wallet\",\n showOnModal: true,\n showOnMobile: true,\n showOnDesktop: true,\n },\n [SOLANA_ADAPTERS.OPENLOGIN]: {\n label: \"OpenLogin\",\n showOnModal: true,\n showOnMobile: true,\n showOnDesktop: true,\n },\n [SOLANA_ADAPTERS.PHANTOM]: {\n label: \"Phantom\",\n showOnModal: true,\n showOnMobile: true,\n showOnDesktop: true,\n },\n },\n};\n\nexport const defaultEvmDappModalConfig: AdaptersModalConfig = {\n chainNamespace: CHAIN_NAMESPACES.EIP155,\n adapters: {\n [EVM_ADAPTERS.TORUS_EVM]: {\n label: \"Torus Wallet\",\n showOnModal: true,\n showOnMobile: true,\n showOnDesktop: true,\n },\n [EVM_ADAPTERS.METAMASK]: {\n label: \"MetaMask\",\n showOnModal: true,\n showOnMobile: true,\n showOnDesktop: true,\n },\n [EVM_ADAPTERS.OPENLOGIN]: {\n label: \"OpenLogin\",\n showOnModal: true,\n showOnMobile: true,\n showOnDesktop: true,\n },\n [EVM_ADAPTERS.WALLET_CONNECT_V1]: {\n label: \"Wallet Connect\",\n showOnModal: true,\n showOnMobile: true,\n showOnDesktop: true,\n },\n },\n};\n\nexport const defaultSolanaWalletModalConfig: AdaptersModalConfig = {\n chainNamespace: CHAIN_NAMESPACES.SOLANA,\n adapters: {\n [SOLANA_ADAPTERS.OPENLOGIN]: {\n label: \"OpenLogin\",\n showOnModal: true,\n showOnMobile: true,\n showOnDesktop: true,\n },\n },\n};\n\nexport const defaultEvmWalletModalConfig: AdaptersModalConfig = {\n chainNamespace: CHAIN_NAMESPACES.EIP155,\n adapters: {\n [EVM_ADAPTERS.OPENLOGIN]: {\n label: \"OpenLogin\",\n showOnModal: true,\n showOnMobile: true,\n showOnDesktop: true,\n },\n },\n};\n\nexport const defaultOtherModalConfig: AdaptersModalConfig = {\n chainNamespace: CHAIN_NAMESPACES.OTHER,\n adapters: {\n [EVM_ADAPTERS.OPENLOGIN]: {\n label: \"OpenLogin\",\n showOnModal: true,\n showOnMobile: true,\n showOnDesktop: true,\n },\n },\n};\n","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"@babel/runtime/helpers/defineProperty\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"@web3auth/no-modal\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"@web3auth/ui\");","import type { OPENLOGIN_NETWORK_TYPE, OpenLoginOptions } from \"@toruslabs/openlogin\";\nimport { CHAIN_NAMESPACES, CustomChainConfig, getChainConfig, IAdapter, WALLET_ADAPTER_TYPE, WALLET_ADAPTERS } from \"@web3auth/base\";\n\n// warning: this function is not compatible with \"OTHER\" chain namespace.\nexport const getDefaultAdapterModule = async (params: {\n name: WALLET_ADAPTER_TYPE;\n clientId: string;\n customChainConfig: Partial<CustomChainConfig> & Pick<CustomChainConfig, \"chainNamespace\">;\n sessionTime?: number;\n web3AuthNetwork?: OPENLOGIN_NETWORK_TYPE;\n}): Promise<IAdapter<unknown>> => {\n const { name, customChainConfig, clientId, sessionTime, web3AuthNetwork } = params;\n if (!Object.values(CHAIN_NAMESPACES).includes(customChainConfig.chainNamespace))\n throw new Error(`Invalid chainNamespace: ${customChainConfig.chainNamespace}`);\n const finalChainConfig = {\n ...(getChainConfig(customChainConfig.chainNamespace, customChainConfig?.chainId) as CustomChainConfig),\n ...(customChainConfig || {}),\n };\n if (name === WALLET_ADAPTERS.TORUS_EVM) {\n const { TorusWalletAdapter } = await import(\"@web3auth/torus-evm-adapter\");\n const adapter = new TorusWalletAdapter({ chainConfig: finalChainConfig, clientId, sessionTime, web3AuthNetwork });\n return adapter;\n } else if (name === WALLET_ADAPTERS.TORUS_SOLANA) {\n const { SolanaWalletAdapter } = await import(\"@web3auth/torus-solana-adapter\");\n const adapter = new SolanaWalletAdapter({ chainConfig: finalChainConfig, clientId, sessionTime, web3AuthNetwork });\n return adapter;\n } else if (name === WALLET_ADAPTERS.METAMASK) {\n const { MetamaskAdapter } = await import(\"@web3auth/metamask-adapter\");\n const adapter = new MetamaskAdapter({ chainConfig: finalChainConfig, clientId, sessionTime, web3AuthNetwork });\n return adapter;\n } else if (name === WALLET_ADAPTERS.PHANTOM) {\n const { PhantomAdapter } = await import(\"@web3auth/phantom-adapter\");\n const adapter = new PhantomAdapter({ chainConfig: finalChainConfig, clientId, sessionTime, web3AuthNetwork });\n return adapter;\n } else if (name === WALLET_ADAPTERS.WALLET_CONNECT_V1) {\n const { WalletConnectV1Adapter } = await import(\"@web3auth/wallet-connect-v1-adapter\");\n const adapter = new WalletConnectV1Adapter({ chainConfig: finalChainConfig, clientId, sessionTime, web3AuthNetwork });\n return adapter;\n } else if (name === WALLET_ADAPTERS.OPENLOGIN) {\n const { OpenloginAdapter, getOpenloginDefaultOptions } = await import(\"@web3auth/openlogin-adapter\");\n const defaultOptions = getOpenloginDefaultOptions();\n const adapter = new OpenloginAdapter({\n ...defaultOptions,\n clientId,\n chainConfig: { ...finalChainConfig },\n adapterSettings: { ...(defaultOptions.adapterSettings as OpenLoginOptions), clientId, network: web3AuthNetwork },\n sessionTime,\n web3AuthNetwork,\n });\n return adapter;\n }\n throw new Error(\"Invalid wallet adapter name\");\n};\n","interface NavigatorLanguage {\n userLanguage?: string;\n}\n\nexport const languageMap = {\n en: \"english\",\n de: \"german\",\n ja: \"japanese\",\n ko: \"korean\",\n zh: \"mandarin\",\n es: \"spanish\",\n fr: \"french\",\n pt: \"portuguese\",\n};\n\nexport const getUserLanguage = (defaultLanguage: string | undefined) => {\n let userLanguage = defaultLanguage;\n if (!userLanguage) {\n const browserLanguage =\n typeof window !== \"undefined\" ? (window.navigator as NavigatorLanguage).userLanguage || window.navigator.language || \"en-US\" : \"en-US\";\n userLanguage = browserLanguage.split(\"-\")[0];\n }\n return Object.prototype.hasOwnProperty.call(languageMap, userLanguage) ? userLanguage : \"en\";\n};\n","import {\n ADAPTER_CATEGORY,\n ADAPTER_EVENTS,\n ADAPTER_STATUS,\n BaseAdapterConfig,\n CHAIN_NAMESPACES,\n CustomChainConfig,\n getChainConfig,\n log,\n LoginMethodConfig,\n SafeEventEmitterProvider,\n WALLET_ADAPTER_TYPE,\n WALLET_ADAPTERS,\n} from \"@web3auth/base\";\nimport { Web3AuthNoModal, Web3AuthNoModalOptions } from \"@web3auth/no-modal\";\nimport { getAdapterSocialLogins, LOGIN_MODAL_EVENTS, LoginModal, OPENLOGIN_PROVIDERS, UIConfig } from \"@web3auth/ui\";\n\nimport {\n defaultEvmDappModalConfig,\n defaultEvmWalletModalConfig,\n defaultOtherModalConfig,\n defaultSolanaDappModalConfig,\n defaultSolanaWalletModalConfig,\n} from \"./config\";\nimport { getDefaultAdapterModule } from \"./default\";\nimport { AdaptersModalConfig, IWeb3AuthModal, ModalConfig } from \"./interface\";\nimport { getUserLanguage } from \"./utils\";\n\nexport interface Web3AuthOptions extends Web3AuthNoModalOptions {\n /**\n * web3auth instance provides different adapters for different type of usages. If you are dapp and want to\n * use external wallets like metamask, then you can use the `DAPP` authMode.\n * If you are a wallet and only want to use you own wallet implementations along with openlogin,\n * then you should use `WALLET` authMode.\n *\n * @defaultValue `DAPP`\n */\n authMode?: \"DAPP\" | \"WALLET\";\n /**\n * Config for configuring modal ui display properties\n */\n uiConfig?: Omit<UIConfig, \"adapterListener\">;\n}\n\nexport class Web3Auth extends Web3AuthNoModal implements IWeb3AuthModal {\n public loginModal: LoginModal;\n\n readonly options: Web3AuthOptions;\n\n private modalConfig: AdaptersModalConfig = defaultEvmDappModalConfig;\n\n constructor(options: Web3AuthOptions) {\n super(options);\n this.options = { ...options };\n const providedChainConfig = this.options.chainConfig;\n if (providedChainConfig.chainNamespace === CHAIN_NAMESPACES.SOLANA) {\n if (options.authMode === \"WALLET\") {\n // default config for solana wallet modal\n this.modalConfig = defaultSolanaWalletModalConfig;\n } else {\n // default config for solana dapp modal\n this.modalConfig = defaultSolanaDappModalConfig;\n }\n } else if (providedChainConfig.chainNamespace === CHAIN_NAMESPACES.EIP155) {\n if (options.authMode === \"WALLET\") {\n // default config for evm wallet modal\n this.modalConfig = defaultEvmWalletModalConfig;\n } else {\n // default config for evm dapp modal\n this.modalConfig = defaultEvmDappModalConfig;\n }\n } else if (providedChainConfig.chainNamespace === CHAIN_NAMESPACES.OTHER) {\n this.modalConfig = defaultOtherModalConfig;\n } else {\n throw new Error(`Invalid chainNamespace provided: ${providedChainConfig.chainNamespace}`);\n }\n\n // get userLanguage\n const defaultLanguage = getUserLanguage(this.options.uiConfig?.defaultLanguage);\n\n this.loginModal = new LoginModal({\n theme: this.options.uiConfig?.theme,\n appName: this.options.uiConfig?.appName || \"blockchain\",\n appLogo: this.options.uiConfig?.appLogo || \"\",\n adapterListener: this,\n displayErrorsOnModal: this.options.uiConfig?.displayErrorsOnModal,\n defaultLanguage,\n modalZIndex: this.options.uiConfig?.modalZIndex || \"99998\",\n web3AuthNetwork: this.options.web3AuthNetwork,\n loginGridCol: this.options.uiConfig?.loginGridCol || 3,\n primaryButton: this.options.uiConfig?.primaryButton || \"socialLogin\",\n });\n this.subscribeToLoginModalEvents();\n }\n\n public async initModal(params?: { modalConfig?: Record<WALLET_ADAPTER_TYPE, ModalConfig> }): Promise<void> {\n super.checkInitRequirements();\n await this.loginModal.initModal();\n const providedChainConfig = this.options.chainConfig;\n\n // merge default adapters with the custom configured adapters.\n const allAdapters = [...new Set([...Object.keys(this.modalConfig.adapters || {}), ...Object.keys(this.walletAdapters)])];\n\n const adapterConfigurationPromises = allAdapters.map(async (adapterName) => {\n // start with the default config of adapter.\n let adapterConfig = this.modalConfig.adapters?.[adapterName] || {\n label: adapterName,\n showOnModal: true,\n showOnMobile: true,\n showOnDesktop: true,\n };\n\n // override the default config of adapter if some config is being provided by the user.\n if (params?.modalConfig?.[adapterName]) {\n adapterConfig = { ...adapterConfig, ...params.modalConfig[adapterName] };\n }\n (this.modalConfig.adapters as Record<WALLET_ADAPTER_TYPE, ModalConfig>)[adapterName] = adapterConfig as ModalConfig;\n\n // check if adapter is configured/added by user and exist in walletAdapters map.\n const adapter = this.walletAdapters[adapterName];\n log.debug(\"adapter config\", adapterName, this.modalConfig.adapters?.[adapterName].showOnModal, adapter);\n\n // if adapter is not custom configured then check if it is available in default adapters.\n // and if adapter is not hidden by user\n if (!adapter && this.modalConfig.adapters?.[adapterName].showOnModal) {\n // if adapter is not configured and some default configuration is available, use it.\n const ad = await getDefaultAdapterModule({\n name: adapterName,\n customChainConfig: this.options.chainConfig,\n clientId: this.options.clientId,\n sessionTime: this.options.sessionTime,\n web3AuthNetwork: this.options.web3AuthNetwork,\n });\n\n this.walletAdapters[adapterName] = ad;\n return adapterName;\n } else if (adapter?.type === ADAPTER_CATEGORY.IN_APP || adapter?.type === ADAPTER_CATEGORY.EXTERNAL || adapterName === this.cachedAdapter) {\n if (!this.modalConfig.adapters?.[adapterName].showOnModal) return;\n // add client id to adapter, same web3auth client id can be used in adapter.\n // this id is being overridden if user is also passing client id in adapter's constructor.\n this.walletAdapters[adapterName].setAdapterSettings({\n clientId: this.options.clientId,\n sessionTime: this.options.sessionTime,\n web3AuthNetwork: this.options.web3AuthNetwork,\n });\n\n // if adapter doesn't have any chainConfig then we will set the chainConfig based of passed chainNamespace\n // and chainNamespace.\n if (!adapter.chainConfigProxy) {\n const chainConfig = {\n ...getChainConfig(providedChainConfig.chainNamespace, this.coreOptions.chainConfig?.chainId),\n ...this.coreOptions.chainConfig,\n } as CustomChainConfig;\n this.walletAdapters[adapterName].setAdapterSettings({ chainConfig });\n }\n\n return adapterName;\n }\n });\n\n let adapterNames = await Promise.all(adapterConfigurationPromises);\n const hasInAppWallets = Object.values(this.walletAdapters).some((adapter) => {\n if (adapter.type !== ADAPTER_CATEGORY.IN_APP) return false;\n if (this.modalConfig.adapters?.[adapter.name]?.showOnModal !== true) return false;\n if (!this.modalConfig.adapters?.[adapter.name]?.loginMethods) return true;\n const mergedLoginMethods = getAdapterSocialLogins(\n adapter.name,\n this.walletAdapters[adapter.name],\n (this.modalConfig.adapters as Record<WALLET_ADAPTER_TYPE, ModalConfig>)[adapter.name]?.loginMethods\n );\n if (Object.values(mergedLoginMethods).some((method: LoginMethodConfig[keyof LoginMethodConfig]) => method.showOnModal)) return true;\n return false;\n });\n log.debug(hasInAppWallets, this.walletAdapters, adapterNames, \"hasInAppWallets\");\n\n // if both wc1 and wc2 are configured, give precedence to wc2.\n if (this.walletAdapters[WALLET_ADAPTERS.WALLET_CONNECT_V1] && this.walletAdapters[WALLET_ADAPTERS.WALLET_CONNECT_V2]) {\n delete this.walletAdapters[WALLET_ADAPTERS.WALLET_CONNECT_V1];\n adapterNames = adapterNames.filter((ad) => ad !== WALLET_ADAPTERS.WALLET_CONNECT_V1);\n }\n // Now, initialize the adapters.\n const initPromises = adapterNames.map(async (adapterName) => {\n if (!adapterName) return;\n try {\n const adapter = this.walletAdapters[adapterName];\n // only initialize a external adapter here if it is a cached adapter.\n if (this.cachedAdapter !== adapterName && adapter.type === ADAPTER_CATEGORY.EXTERNAL) {\n return;\n }\n // in-app wallets or cached wallet (being connected or already connected) are initialized first.\n // if adapter is configured thn only initialize in app or cached adapter.\n // external wallets are initialized on INIT_EXTERNAL_WALLET event.\n this.subscribeToAdapterEvents(adapter);\n if (adapter.status === ADAPTER_STATUS.NOT_READY) await adapter.init({ autoConnect: this.cachedAdapter === adapterName });\n // note: not adding cachedWallet to modal if it is external wallet.\n // adding it later if no in-app wallets are available.\n if (adapter.type === ADAPTER_CATEGORY.IN_APP) {\n this.initializeInAppWallet(adapterName);\n }\n } catch (error) {\n log.error(error, \"error while initializing adapter\");\n }\n });\n\n this.status = ADAPTER_STATUS.READY;\n await Promise.all(initPromises);\n\n const hasExternalWallets = allAdapters.some((adapterName) => {\n return this.walletAdapters[adapterName]?.type === ADAPTER_CATEGORY.EXTERNAL && this.modalConfig.adapters?.[adapterName].showOnModal;\n });\n\n if (hasExternalWallets) {\n this.loginModal.initExternalWalletContainer();\n }\n\n // variable to check if we have any in app wallets\n // currently all default in app and external wallets can be hidden or shown based on config.\n if (!hasInAppWallets && hasExternalWallets) {\n // if no in app wallet is available then initialize external wallets in modal\n await this.initExternalWalletAdapters(false, { showExternalWalletsOnly: true });\n }\n }\n\n public async connect(): Promise<SafeEventEmitterProvider | null> {\n // if (!this.loginModal.initialized) throw new Error(\"Login modal is not initialized\");\n // if already connected return provider\n if (this.provider) return this.provider;\n this.loginModal.open();\n return new Promise((resolve, reject) => {\n this.once(ADAPTER_EVENTS.CONNECTED, () => {\n return resolve(this.provider);\n });\n this.once(ADAPTER_EVENTS.ERRORED, (err: unknown) => {\n return reject(err);\n });\n });\n }\n\n private async initExternalWalletAdapters(externalWalletsInitialized: boolean, options?: { showExternalWalletsOnly: boolean }): Promise<void> {\n if (externalWalletsInitialized) return;\n const adaptersConfig: Record<string, BaseAdapterConfig> = {};\n Object.keys(this.walletAdapters).forEach(async (adapterName) => {\n const adapter = this.walletAdapters[adapterName];\n if (adapter?.type === ADAPTER_CATEGORY.EXTERNAL) {\n log.debug(\"init external wallet\", this.cachedAdapter, adapterName);\n this.subscribeToAdapterEvents(adapter);\n // we are not initializing cached adapter here as it is already being initialized in initModal before.\n if (this.cachedAdapter === adapterName) {\n return;\n }\n if (adapter.status === ADAPTER_STATUS.NOT_READY) {\n await adapter\n .init({ autoConnect: this.cachedAdapter === adapterName })\n .then(() => {\n adaptersConfig[adapterName] = (this.modalConfig.adapters as Record<WALLET_ADAPTER_TYPE, ModalConfig>)[adapterName];\n this.loginModal.addWalletLogins(adaptersConfig, { showExternalWalletsOnly: !!options?.showExternalWalletsOnly });\n return undefined;\n })\n .catch((error) => log.error(error, \"error while initializing adapter\"));\n } else if (adapter.status === ADAPTER_STATUS.READY) {\n adaptersConfig[adapterName] = (this.modalConfig.adapters as Record<WALLET_ADAPTER_TYPE, ModalConfig>)[adapterName];\n this.loginModal.addWalletLogins(adaptersConfig, { showExternalWalletsOnly: !!options?.showExternalWalletsOnly });\n }\n }\n });\n }\n\n private initializeInAppWallet(adapterName: string): void {\n log.info(\"adapterInitResults\", adapterName);\n if (this.walletAdapters[adapterName].type === ADAPTER_CATEGORY.IN_APP) {\n this.loginModal.addSocialLogins(\n adapterName,\n getAdapterSocialLogins(\n adapterName,\n this.walletAdapters[adapterName],\n (this.modalConfig.adapters as Record<WALLET_ADAPTER_TYPE, ModalConfig>)[adapterName]?.loginMethods\n ),\n this.options.uiConfig?.loginMethodsOrder || OPENLOGIN_PROVIDERS,\n {\n ...this.options.uiConfig,\n loginGridCol: this.options.uiConfig?.loginGridCol || 3,\n primaryButton: this.options.uiConfig?.primaryButton || \"socialLogin\",\n }\n );\n }\n }\n\n private subscribeToLoginModalEvents(): void {\n this.loginModal.on(LOGIN_MODAL_EVENTS.LOGIN, async (params: { adapter: WALLET_ADAPTER_TYPE; loginParams: unknown }) => {\n try {\n await this.connectTo<unknown>(params.adapter, params.loginParams);\n } catch (error) {\n log.error(`Error while connecting to adapter: ${params.adapter}`, error);\n }\n });\n this.loginModal.on(LOGIN_MODAL_EVENTS.INIT_EXTERNAL_WALLETS, async (params: { externalWalletsInitialized: boolean }) => {\n await this.initExternalWalletAdapters(params.externalWalletsInitialized);\n });\n this.loginModal.on(LOGIN_MODAL_EVENTS.DISCONNECT, async () => {\n try {\n await this.logout();\n } catch (error) {\n log.error(`Error while disconnecting`, error);\n }\n });\n this.loginModal.on(LOGIN_MODAL_EVENTS.MODAL_VISIBILITY, async (visibility: boolean) => {\n log.debug(\"is login modal visible\", visibility);\n this.emit(LOGIN_MODAL_EVENTS.MODAL_VISIBILITY, visibility);\n const adapter = this.walletAdapters[WALLET_ADAPTERS.WALLET_CONNECT_V2] || this.walletAdapters[WALLET_ADAPTERS.WALLET_CONNECT_V1];\n if (adapter) {\n const walletConnectStatus = adapter?.status;\n log.debug(\"trying refreshing wc session\", visibility, walletConnectStatus);\n if (visibility && (walletConnectStatus === ADAPTER_STATUS.READY || walletConnectStatus === ADAPTER_STATUS.CONNECTING)) {\n log.debug(\"refreshing wc session\");\n\n // refreshing session for wallet connect whenever modal is opened.\n try {\n adapter.connect();\n } catch (error) {\n log.error(`Error while disconnecting to wallet connect in core`, error);\n }\n }\n }\n });\n }\n}\n","module.exports = require(\"@web3auth/base\");","module.exports = require(\"@web3auth/metamask-adapter\");","module.exports = require(\"@web3auth/openlogin-adapter\");","module.exports = require(\"@web3auth/phantom-adapter\");","module.exports = require(\"@web3auth/torus-evm-adapter\");","module.exports = require(\"@web3auth/torus-solana-adapter\");","module.exports = require(\"@web3auth/wallet-connect-v1-adapter\");","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","var getProto = Object.getPrototypeOf ? (obj) => (Object.getPrototypeOf(obj)) : (obj) => (obj.__proto__);\nvar leafPrototypes;\n// create a fake namespace object\n// mode & 1: value is a module id, require it\n// mode & 2: merge all properties of value into the ns\n// mode & 4: return value when already ns object\n// mode & 16: return value when it's Promise-like\n// mode & 8|1: behave like require\n__webpack_require__.t = function(value, mode) {\n\tif(mode & 1) value = this(value);\n\tif(mode & 8) return value;\n\tif(typeof value === 'object' && value) {\n\t\tif((mode & 4) && value.__esModule) return value;\n\t\tif((mode & 16) && typeof value.then === 'function') return value;\n\t}\n\tvar ns = Object.create(null);\n\t__webpack_require__.r(ns);\n\tvar def = {};\n\tleafPrototypes = leafPrototypes || [null, getProto({}), getProto([]), getProto(getProto)];\n\tfor(var current = mode & 2 && value; typeof current == 'object' && !~leafPrototypes.indexOf(current); current = getProto(current)) {\n\t\tObject.getOwnPropertyNames(current).forEach((key) => (def[key] = () => (value[key])));\n\t}\n\tdef['default'] = () => (value);\n\t__webpack_require__.d(ns, def);\n\treturn ns;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","export * from \"./config\";\nexport * from \"./interface\";\nexport * from \"./modalManager\";\n"],"names":["CHAIN_NAMESPACES","EVM_ADAPTERS","SOLANA_ADAPTERS","defaultSolanaDappModalConfig","chainNamespace","SOLANA","adapters","TORUS_SOLANA","label","showOnModal","showOnMobile","showOnDesktop","OPENLOGIN","PHANTOM","defaultEvmDappModalConfig","EIP155","TORUS_EVM","METAMASK","WALLET_CONNECT_V1","defaultSolanaWalletModalConfig","defaultEvmWalletModalConfig","defaultOtherModalConfig","OTHER","getChainConfig","WALLET_ADAPTERS","getDefaultAdapterModule","params","name","customChainConfig","clientId","sessionTime","web3AuthNetwork","Object","values","includes","Error","finalChainConfig","_objectSpread","chainId","TorusWalletAdapter","adapter","chainConfig","SolanaWalletAdapter","MetamaskAdapter","PhantomAdapter","WalletConnectV1Adapter","OpenloginAdapter","getOpenloginDefaultOptions","defaultOptions","adapterSettings","network","languageMap","en","de","ja","ko","zh","es","fr","pt","getUserLanguage","defaultLanguage","userLanguage","browserLanguage","window","navigator","language","split","prototype","hasOwnProperty","call","ADAPTER_CATEGORY","ADAPTER_EVENTS","ADAPTER_STATUS","log","Web3AuthNoModal","getAdapterSocialLogins","LOGIN_MODAL_EVENTS","LoginModal","OPENLOGIN_PROVIDERS","Web3Auth","constructor","options","_this$options$uiConfi","_this$options$uiConfi2","_this$options$uiConfi3","_this$options$uiConfi4","_this$options$uiConfi5","_this$options$uiConfi6","_this$options$uiConfi7","_this$options$uiConfi8","_defineProperty","providedChainConfig","authMode","modalConfig","uiConfig","loginModal","theme","appName","appLogo","adapterListener","displayErrorsOnModal","modalZIndex","loginGridCol","primaryButton","subscribeToLoginModalEvents","initModal","checkInitRequirements","allAdapters","Set","keys","walletAdapters","adapterConfigurationPromises","map","adapterName","_this$modalConfig$ada","_params$modalConfig","_this$modalConfig$ada2","_this$modalConfig$ada3","adapterConfig","debug","ad","type","IN_APP","EXTERNAL","cachedAdapter","_this$modalConfig$ada4","setAdapterSettings","chainConfigProxy","_this$coreOptions$cha","coreOptions","adapterNames","Promise","all","hasInAppWallets","some","_this$modalConfig$ada5","_this$modalConfig$ada6","_this$modalConfig$ada7","_this$modalConfig$ada8","_adapter$name","loginMethods","mergedLoginMethods","method","WALLET_CONNECT_V2","filter","initPromises","subscribeToAdapterEvents","status","NOT_READY","init","autoConnect","initializeInAppWallet","error","READY","hasExternalWallets","_this$walletAdapters$","_this$modalConfig$ada9","initExternalWalletContainer","initExternalWalletAdapters","showExternalWalletsOnly","connect","provider","open","resolve","reject","once","CONNECTED","ERRORED","err","externalWalletsInitialized","adaptersConfig","forEach","then","addWalletLogins","undefined","catch","info","_adapterName","_this$options$uiConfi9","_this$options$uiConfi10","_this$options$uiConfi11","addSocialLogins","loginMethodsOrder","on","LOGIN","connectTo","loginParams","INIT_EXTERNAL_WALLETS","DISCONNECT","logout","MODAL_VISIBILITY","visibility","emit","walletConnectStatus","CONNECTING"],"sourceRoot":""}
|
|
1
|
+
{"version":3,"file":"modal.cjs.js","mappings":";;;;;;;;;;;;;;;;AAAiF;AAI1E,MAAMG,4BAAiD,GAAG;EAC/DC,cAAc,EAAEJ,mEAAuB;EACvCM,QAAQ,EAAE;IACR,CAACJ,wEAA4B,GAAG;MAC9BM,KAAK,EAAE,cAAc;MACrBC,WAAW,EAAE,IAAI;MACjBC,YAAY,EAAE,IAAI;MAClBC,aAAa,EAAE;IACjB,CAAC;IACD,CAACT,qEAAyB,GAAG;MAC3BM,KAAK,EAAE,WAAW;MAClBC,WAAW,EAAE,IAAI;MACjBC,YAAY,EAAE,IAAI;MAClBC,aAAa,EAAE;IACjB,CAAC;IACD,CAACT,mEAAuB,GAAG;MACzBM,KAAK,EAAE,SAAS;MAChBC,WAAW,EAAE,IAAI;MACjBC,YAAY,EAAE,IAAI;MAClBC,aAAa,EAAE;IACjB;EACF;AACF,CAAC;AAEM,MAAMG,yBAA8C,GAAG;EAC5DV,cAAc,EAAEJ,mEAAuB;EACvCM,QAAQ,EAAE;IACR,CAACL,kEAAsB,GAAG;MACxBO,KAAK,EAAE,cAAc;MACrBC,WAAW,EAAE,IAAI;MACjBC,YAAY,EAAE,IAAI;MAClBC,aAAa,EAAE;IACjB,CAAC;IACD,CAACV,iEAAqB,GAAG;MACvBO,KAAK,EAAE,UAAU;MACjBC,WAAW,EAAE,IAAI;MACjBC,YAAY,EAAE,IAAI;MAClBC,aAAa,EAAE;IACjB,CAAC;IACD,CAACV,kEAAsB,GAAG;MACxBO,KAAK,EAAE,WAAW;MAClBC,WAAW,EAAE,IAAI;MACjBC,YAAY,EAAE,IAAI;MAClBC,aAAa,EAAE;IACjB,CAAC;IACD,CAACV,0EAA8B,GAAG;MAChCO,KAAK,EAAE,gBAAgB;MACvBC,WAAW,EAAE,IAAI;MACjBC,YAAY,EAAE,IAAI;MAClBC,aAAa,EAAE;IACjB;EACF;AACF,CAAC;AAEM,MAAMQ,8BAAmD,GAAG;EACjEf,cAAc,EAAEJ,mEAAuB;EACvCM,QAAQ,EAAE;IACR,CAACJ,qEAAyB,GAAG;MAC3BM,KAAK,EAAE,WAAW;MAClBC,WAAW,EAAE,IAAI;MACjBC,YAAY,EAAE,IAAI;MAClBC,aAAa,EAAE;IACjB;EACF;AACF,CAAC;AAEM,MAAMS,2BAAgD,GAAG;EAC9DhB,cAAc,EAAEJ,mEAAuB;EACvCM,QAAQ,EAAE;IACR,CAACL,kEAAsB,GAAG;MACxBO,KAAK,EAAE,WAAW;MAClBC,WAAW,EAAE,IAAI;MACjBC,YAAY,EAAE,IAAI;MAClBC,aAAa,EAAE;IACjB;EACF;AACF,CAAC;AAEM,MAAMU,uBAA4C,GAAG;EAC1DjB,cAAc,EAAEJ,kEAAsB;EACtCM,QAAQ,EAAE;IACR,CAACL,kEAAsB,GAAG;MACxBO,KAAK,EAAE,WAAW;MAClBC,WAAW,EAAE,IAAI;MACjBC,YAAY,EAAE,IAAI;MAClBC,aAAa,EAAE;IACjB;EACF;AACF,CAAC;;;;;;;;;;;;;;;;;;;;;;AC5FD,MAAM,8BAA4B;;;;;ACAlC,MAAM,6BAA4B;;ACAlC,MAAM,wBAA4B;;ACAlC,MAAM,kBAA4B;;;;;;;ACCmG;AACnD;AAE3E,eAAee,qBAAqBA,CAACC,WAA8B,EAAkC;EAC1G,IAAIA,WAAW,CAACvB,cAAc,KAAKJ,6BAAuB,EAAE;IAC1D,MAAM;MAAE4B;IAAyB,CAAC,GAAG,MAAM,8FAAmC;IAC9E,OAAO,IAAIA,wBAAwB,CAAC;MAAEC,MAAM,EAAE;QAAEF;MAAY;IAAE,CAAC,CAAC;EAClE,CAAC,MAAM,IAAIA,WAAW,CAACvB,cAAc,KAAKJ,6BAAuB,EAAE;IACjE,MAAM;MAAE8B;IAA2B,CAAC,GAAG,MAAM,6FAAqC;IAClF,OAAO,IAAIA,0BAA0B,CAAC;MAAED,MAAM,EAAE;QAAEF;MAAY;IAAE,CAAC,CAAC;EACpE,CAAC,MAAM,IAAIA,WAAW,CAACvB,cAAc,KAAKJ,4BAAsB,EAAE;IAChE;IACA;IACA,OAAO,IAAIyB,sDAAwB,CAAC,CAAC;EACvC;EACA,MAAM,IAAIM,KAAK,CAAE,2BAA0BJ,WAAW,CAACvB,cAAe,mCAAkC,CAAC;AAC3G;;AAEA;AACO,MAAM4B,uBAAuB,GAAG,MAAOC,MAM7C,IAAiC;EAChC,MAAM;IAAEC,IAAI;IAAEC,iBAAiB;IAAEC,QAAQ;IAAEC,WAAW;IAAEC;EAAgB,CAAC,GAAGL,MAAM;EAClF,IAAI,CAACM,MAAM,CAACC,MAAM,CAACxC,sBAAgB,CAAC,CAACyC,QAAQ,CAACN,iBAAiB,CAAC/B,cAAc,CAAC,EAC7E,MAAM,IAAI2B,KAAK,CAAE,2BAA0BI,iBAAiB,CAAC/B,cAAe,EAAC,CAAC;EAChF,MAAMsC,gBAAgB,GAAAC,aAAA,CAAAA,aAAA,KAChBpB,wBAAc,CAACY,iBAAiB,CAAC/B,cAAc,EAAE+B,iBAAiB,aAAjBA,iBAAiB,uBAAjBA,iBAAiB,CAAES,OAAO,CAAC,GAC5ET,iBAAiB,IAAI,CAAC,CAAC,CAC5B;EACD,IAAID,IAAI,KAAKV,+BAAyB,EAAE;IACtC,MAAM;MAAEqB;IAAmB,CAAC,GAAG,MAAM,8FAAqC;IAC1E,MAAMC,OAAO,GAAG,IAAID,kBAAkB,CAAC;MAAElB,WAAW,EAAEe,gBAAgB;MAAEN,QAAQ;MAAEC,WAAW;MAAEC;IAAgB,CAAC,CAAC;IACjH,OAAOQ,OAAO;EAChB,CAAC,MAAM,IAAIZ,IAAI,KAAKV,kCAA4B,EAAE;IAChD,MAAM;MAAEuB;IAAoB,CAAC,GAAG,MAAM,4FAAwC;IAC9E,MAAMD,OAAO,GAAG,IAAIC,mBAAmB,CAAC;MAAEpB,WAAW,EAAEe,gBAAgB;MAAEN,QAAQ;MAAEC,WAAW;MAAEC;IAAgB,CAAC,CAAC;IAClH,OAAOQ,OAAO;EAChB,CAAC,MAAM,IAAIZ,IAAI,KAAKV,8BAAwB,EAAE;IAC5C,MAAM;MAAEwB;IAAgB,CAAC,GAAG,MAAM,8FAAoC;IACtE,MAAMF,OAAO,GAAG,IAAIE,eAAe,CAAC;MAAErB,WAAW,EAAEe,gBAAgB;MAAEN,QAAQ;MAAEC,WAAW;MAAEC;IAAgB,CAAC,CAAC;IAC9G,OAAOQ,OAAO;EAChB,CAAC,MAAM,IAAIZ,IAAI,KAAKV,6BAAuB,EAAE;IAC3C,MAAM;MAAEyB;IAAe,CAAC,GAAG,MAAM,8FAAmC;IACpE,MAAMH,OAAO,GAAG,IAAIG,cAAc,CAAC;MAAEtB,WAAW,EAAEe,gBAAgB;MAAEN,QAAQ;MAAEC,WAAW;MAAEC;IAAgB,CAAC,CAAC;IAC7G,OAAOQ,OAAO;EAChB,CAAC,MAAM,IAAIZ,IAAI,KAAKV,uCAAiC,EAAE;IACrD,MAAM;MAAE0B;IAAuB,CAAC,GAAG,MAAM,8FAA6C;IACtF,MAAMJ,OAAO,GAAG,IAAII,sBAAsB,CAAC;MACzCvB,WAAW,EAAEe,gBAAgB;MAC7BN,QAAQ;MACRC,WAAW;MACXC,eAAe;MACfa,eAAe,EAAE;QACfC,wBAAwB,EAAE;UACxB;UACAC,SAAS,EAAE;QACb;MACF;IACF,CAAC,CAAC;IACF,OAAOP,OAAO;EAChB,CAAC,MAAM,IAAIZ,IAAI,KAAKV,+BAAyB,EAAE;IAC7C,MAAM;MAAE8B,gBAAgB;MAAEC;IAA2B,CAAC,GAAG,MAAM,8FAAqC;IAEpG,MAAMC,kBAAyC,GAAG,MAAM9B,qBAAqB,CAACgB,gBAAgB,CAAC;IAE/F,MAAMe,cAAc,GAAGF,0BAA0B,CAAC,CAAC;IACnD,MAAMT,OAAO,GAAG,IAAIQ,gBAAgB,CAAAX,aAAA,CAAAA,aAAA,KAC/Bc,cAAc;MACjBrB,QAAQ;MACRT,WAAW,EAAAgB,aAAA,KAAOD,gBAAgB,CAAE;MACpCS,eAAe,EAAAR,aAAA,CAAAA,aAAA,KAAQc,cAAc,CAACN,eAAe;QAAuBf,QAAQ;QAAEsB,OAAO,EAAEpB;MAAe,EAAE;MAChHD,WAAW;MACXC,eAAe;MACfkB;IAAkB,EACnB,CAAC;IACF,OAAOV,OAAO;EAChB;EACA,MAAM,IAAIf,KAAK,CAAC,6BAA6B,CAAC;AAChD,CAAC;;AC/EM,MAAM4B,WAAW,GAAG;EACzBC,EAAE,EAAE,SAAS;EACbC,EAAE,EAAE,QAAQ;EACZC,EAAE,EAAE,UAAU;EACdC,EAAE,EAAE,QAAQ;EACZC,EAAE,EAAE,UAAU;EACdC,EAAE,EAAE,SAAS;EACbC,EAAE,EAAE,QAAQ;EACZC,EAAE,EAAE,YAAY;EAChBC,EAAE,EAAE;AACN,CAAC;AAEM,MAAMC,eAAe,GAAIC,eAAmC,IAAK;EACtE,IAAIC,YAAY,GAAGD,eAAe;EAClC,IAAI,CAACC,YAAY,EAAE;IACjB,MAAMC,eAAe,GACnB,OAAOC,MAAM,KAAK,WAAW,GAAIA,MAAM,CAACC,SAAS,CAAuBH,YAAY,IAAIE,MAAM,CAACC,SAAS,CAACC,QAAQ,IAAI,OAAO,GAAG,OAAO;IACxIJ,YAAY,GAAGC,eAAe,CAACI,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;EAC9C;EACA,OAAOrC,MAAM,CAACsC,SAAS,CAACC,cAAc,CAACC,IAAI,CAACpB,WAAW,EAAEY,YAAY,CAAC,GAAGA,YAAY,GAAG,IAAI;AAC9F,CAAC;;;;;ACXuB;AACqC;AACgB;AAEwC;AAQnG;AACyD;AAEjC;AAkBnC,MAAMmB,QAAQ,SAASL,wCAAe,CAA2B;EAOtEM,WAAWA,CAACC,OAAwB,EAAE;IAAA,IAAAC,qBAAA,EAAAC,sBAAA,EAAAC,sBAAA,EAAAC,sBAAA,EAAAC,sBAAA,EAAAC,sBAAA,EAAAC,sBAAA,EAAAC,sBAAA;IACpC,KAAK,CAACR,OAAO,CAAC;IAACS,wBAAA;IAAAA,wBAAA;IAAAA,wBAAA,sBAH0BvF,wCAAyB;IAIlE,IAAI,CAAC8E,OAAO,GAAAjD,yBAAA,KAAQiD,OAAO,CAAE;IAC7B,MAAMU,mBAAmB,GAAG,IAAI,CAACV,OAAO,CAACjE,WAAW;IACpD,IAAI2E,mBAAmB,CAAClG,cAAc,KAAKJ,6BAAuB,EAAE;MAClE,IAAI4F,OAAO,CAACW,QAAQ,KAAK,QAAQ,EAAE;QACjC;QACA,IAAI,CAACC,WAAW,GAAGrF,6CAA8B;MACnD,CAAC,MAAM;QACL;QACA,IAAI,CAACqF,WAAW,GAAGrG,2CAA4B;MACjD;IACF,CAAC,MAAM,IAAImG,mBAAmB,CAAClG,cAAc,KAAKJ,6BAAuB,EAAE;MACzE,IAAI4F,OAAO,CAACW,QAAQ,KAAK,QAAQ,EAAE;QACjC;QACA,IAAI,CAACC,WAAW,GAAGpF,0CAA2B;MAChD,CAAC,MAAM;QACL;QACA,IAAI,CAACoF,WAAW,GAAG1F,wCAAyB;MAC9C;IACF,CAAC,MAAM,IAAIwF,mBAAmB,CAAClG,cAAc,KAAKJ,4BAAsB,EAAE;MACxE,IAAI,CAACwG,WAAW,GAAGnF,sCAAuB;IAC5C,CAAC,MAAM;MACL,MAAM,IAAIU,KAAK,CAAE,oCAAmCuE,mBAAmB,CAAClG,cAAe,EAAC,CAAC;IAC3F;;IAEA;IACA,MAAMkE,eAAe,GAAGD,eAAe,EAAAwB,qBAAA,GAAC,IAAI,CAACD,OAAO,CAACa,QAAQ,cAAAZ,qBAAA,uBAArBA,qBAAA,CAAuBvB,eAAe,CAAC;IAE/E,IAAI,CAACoC,UAAU,GAAG,IAAIlB,6BAAU,CAAC;MAC/BmB,KAAK,GAAAb,sBAAA,GAAE,IAAI,CAACF,OAAO,CAACa,QAAQ,cAAAX,sBAAA,uBAArBA,sBAAA,CAAuBa,KAAK;MACnCC,OAAO,EAAE,EAAAb,sBAAA,OAAI,CAACH,OAAO,CAACa,QAAQ,cAAAV,sBAAA,uBAArBA,sBAAA,CAAuBa,OAAO,KAAI,YAAY;MACvDC,OAAO,EAAE,EAAAb,sBAAA,OAAI,CAACJ,OAAO,CAACa,QAAQ,cAAAT,sBAAA,uBAArBA,sBAAA,CAAuBa,OAAO,KAAI,EAAE;MAC7CC,eAAe,EAAE,IAAI;MACrBC,oBAAoB,GAAAd,sBAAA,GAAE,IAAI,CAACL,OAAO,CAACa,QAAQ,cAAAR,sBAAA,uBAArBA,sBAAA,CAAuBc,oBAAoB;MACjEzC,eAAe;MACf0C,WAAW,EAAE,EAAAd,sBAAA,OAAI,CAACN,OAAO,CAACa,QAAQ,cAAAP,sBAAA,uBAArBA,sBAAA,CAAuBc,WAAW,KAAI,OAAO;MAC1D1E,eAAe,EAAE,IAAI,CAACsD,OAAO,CAACtD,eAAe;MAC7C2E,YAAY,EAAE,EAAAd,sBAAA,OAAI,CAACP,OAAO,CAACa,QAAQ,cAAAN,sBAAA,uBAArBA,sBAAA,CAAuBc,YAAY,KAAI,CAAC;MACtDC,aAAa,EAAE,EAAAd,sBAAA,OAAI,CAACR,OAAO,CAACa,QAAQ,cAAAL,sBAAA,uBAArBA,sBAAA,CAAuBc,aAAa,KAAI;IACzD,CAAC,CAAC;IACF,IAAI,CAACC,2BAA2B,CAAC,CAAC;EACpC;EAEA,MAAaC,SAASA,CAACnF,MAAmE,EAAiB;IACzG,KAAK,CAACoF,qBAAqB,CAAC,CAAC;IAC7B,MAAM,IAAI,CAACX,UAAU,CAACU,SAAS,CAAC,CAAC;IACjC,MAAMd,mBAAmB,GAAG,IAAI,CAACV,OAAO,CAACjE,WAAW;;IAEpD;IACA,MAAM2F,WAAW,GAAG,CAAC,GAAG,IAAIC,GAAG,CAAC,CAAC,GAAGhF,MAAM,CAACiF,IAAI,CAAC,IAAI,CAAChB,WAAW,CAAClG,QAAQ,IAAI,CAAC,CAAC,CAAC,EAAE,GAAGiC,MAAM,CAACiF,IAAI,CAAC,IAAI,CAACC,cAAc,CAAC,CAAC,CAAC,CAAC;IAExH,MAAMC,4BAA4B,GAAGJ,WAAW,CAACK,GAAG,CAAC,MAAOC,WAAW,IAAK;MAAA,IAAAC,qBAAA,EAAAC,mBAAA,EAAAC,sBAAA,EAAAC,sBAAA;MAC1E;MACA,IAAIC,aAAa,GAAG,EAAAJ,qBAAA,OAAI,CAACrB,WAAW,CAAClG,QAAQ,cAAAuH,qBAAA,uBAAzBA,qBAAA,CAA4BD,WAAW,CAAC,KAAI;QAC9DpH,KAAK,EAAEoH,WAAW;QAClBnH,WAAW,EAAE,IAAI;QACjBC,YAAY,EAAE,IAAI;QAClBC,aAAa,EAAE;MACjB,CAAC;;MAED;MACA,IAAIsB,MAAM,aAANA,MAAM,gBAAA6F,mBAAA,GAAN7F,MAAM,CAAEuE,WAAW,cAAAsB,mBAAA,eAAnBA,mBAAA,CAAsBF,WAAW,CAAC,EAAE;QACtCK,aAAa,GAAAtF,yBAAA,CAAAA,yBAAA,KAAQsF,aAAa,GAAKhG,MAAM,CAACuE,WAAW,CAACoB,WAAW,CAAC,CAAE;MAC1E;MACC,IAAI,CAACpB,WAAW,CAAClG,QAAQ,CAA8CsH,WAAW,CAAC,GAAGK,aAA4B;;MAEnH;MACA,MAAMnF,OAAO,GAAG,IAAI,CAAC2E,cAAc,CAACG,WAAW,CAAC;MAChDzC,eAAS,CAAC,gBAAgB,EAAEyC,WAAW,GAAAG,sBAAA,GAAE,IAAI,CAACvB,WAAW,CAAClG,QAAQ,cAAAyH,sBAAA,uBAAzBA,sBAAA,CAA4BH,WAAW,CAAC,CAACnH,WAAW,EAAEqC,OAAO,CAAC;;MAEvG;MACA;MACA,IAAI,CAACA,OAAO,KAAAkF,sBAAA,GAAI,IAAI,CAACxB,WAAW,CAAClG,QAAQ,cAAA0H,sBAAA,eAAzBA,sBAAA,CAA4BJ,WAAW,CAAC,CAACnH,WAAW,EAAE;QACpE;QACA,MAAM0H,EAAE,GAAG,MAAMnG,uBAAuB,CAAC;UACvCE,IAAI,EAAE0F,WAAW;UACjBzF,iBAAiB,EAAE,IAAI,CAACyD,OAAO,CAACjE,WAAW;UAC3CS,QAAQ,EAAE,IAAI,CAACwD,OAAO,CAACxD,QAAQ;UAC/BC,WAAW,EAAE,IAAI,CAACuD,OAAO,CAACvD,WAAW;UACrCC,eAAe,EAAE,IAAI,CAACsD,OAAO,CAACtD;QAChC,CAAC,CAAC;QAEF,IAAI,CAACmF,cAAc,CAACG,WAAW,CAAC,GAAGO,EAAE;QACrC,OAAOP,WAAW;MACpB,CAAC,MAAM,IAAI,CAAA9E,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEsF,IAAI,MAAKpD,6BAAuB,IAAI,CAAAlC,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEsF,IAAI,MAAKpD,+BAAyB,IAAI4C,WAAW,KAAK,IAAI,CAACW,aAAa,EAAE;QAAA,IAAAC,sBAAA;QACzI,IAAI,GAAAA,sBAAA,GAAC,IAAI,CAAChC,WAAW,CAAClG,QAAQ,cAAAkI,sBAAA,eAAzBA,sBAAA,CAA4BZ,WAAW,CAAC,CAACnH,WAAW,GAAE;QAC3D;QACA;QACA,IAAI,CAACgH,cAAc,CAACG,WAAW,CAAC,CAACa,kBAAkB,CAAC;UAClDrG,QAAQ,EAAE,IAAI,CAACwD,OAAO,CAACxD,QAAQ;UAC/BC,WAAW,EAAE,IAAI,CAACuD,OAAO,CAACvD,WAAW;UACrCC,eAAe,EAAE,IAAI,CAACsD,OAAO,CAACtD;QAChC,CAAC,CAAC;;QAEF;QACA;QACA,IAAI,CAACQ,OAAO,CAAC4F,gBAAgB,EAAE;UAAA,IAAAC,qBAAA;UAC7B,MAAMhH,WAAW,GAAAgB,yBAAA,CAAAA,yBAAA,KACZpB,wBAAc,CAAC+E,mBAAmB,CAAClG,cAAc,GAAAuI,qBAAA,GAAE,IAAI,CAACC,WAAW,CAACjH,WAAW,cAAAgH,qBAAA,uBAA5BA,qBAAA,CAA8B/F,OAAO,CAAC,GACzF,IAAI,CAACgG,WAAW,CAACjH,WAAW,CACX;UACtB,IAAI,CAAC8F,cAAc,CAACG,WAAW,CAAC,CAACa,kBAAkB,CAAC;YAAE9G;UAAY,CAAC,CAAC;QACtE;QAEA,IAAIiG,WAAW,KAAKpG,+BAAyB,EAAE;UAC7C,MAAMqH,gBAAgB,GAAG,IAAI,CAACpB,cAAc,CAACG,WAAW,CAAqB;UAC7E,IAAI,CAACiB,gBAAgB,CAACrF,kBAAkB,EAAE;YACxC,MAAMsF,yBAAyB,GAAG,MAAMpH,qBAAqB,CAACmH,gBAAgB,CAACH,gBAAqC,CAAC;YACrHG,gBAAgB,CAACJ,kBAAkB,CAAC;cAAEjF,kBAAkB,EAAEsF;YAA0B,CAAC,CAAC;UACxF;QACF;QAEA,OAAOlB,WAAW;MACpB;IACF,CAAC,CAAC;IAEF,IAAImB,YAAY,GAAG,MAAMC,OAAO,CAACC,GAAG,CAACvB,4BAA4B,CAAC;IAClE,MAAMwB,eAAe,GAAG3G,MAAM,CAACC,MAAM,CAAC,IAAI,CAACiF,cAAc,CAAC,CAAC0B,IAAI,CAAErG,OAAO,IAAK;MAAA,IAAAsG,sBAAA,EAAAC,sBAAA,EAAAC,sBAAA,EAAAC,sBAAA,EAAAC,aAAA;MAC3E,IAAI1G,OAAO,CAACsF,IAAI,KAAKpD,6BAAuB,EAAE,OAAO,KAAK;MAC1D,IAAI,EAAAoE,sBAAA,OAAI,CAAC5C,WAAW,CAAClG,QAAQ,cAAA8I,sBAAA,wBAAAC,sBAAA,GAAzBD,sBAAA,CAA4BtG,OAAO,CAACZ,IAAI,CAAC,cAAAmH,sBAAA,uBAAzCA,sBAAA,CAA2C5I,WAAW,MAAK,IAAI,EAAE,OAAO,KAAK;MACjF,IAAI,GAAA6I,sBAAA,GAAC,IAAI,CAAC9C,WAAW,CAAClG,QAAQ,cAAAgJ,sBAAA,gBAAAC,sBAAA,GAAzBD,sBAAA,CAA4BxG,OAAO,CAACZ,IAAI,CAAC,cAAAqH,sBAAA,eAAzCA,sBAAA,CAA2CE,YAAY,GAAE,OAAO,IAAI;MACzE,MAAMC,kBAAkB,GAAGpE,6CAAsB,CAC/CxC,OAAO,CAACZ,IAAI,EACZ,IAAI,CAACuF,cAAc,CAAC3E,OAAO,CAACZ,IAAI,CAAC,GAAAsH,aAAA,GAChC,IAAI,CAAChD,WAAW,CAAClG,QAAQ,CAA8CwC,OAAO,CAACZ,IAAI,CAAC,cAAAsH,aAAA,uBAArFA,aAAA,CAAuFC,YACzF,CAAC;MACD,IAAIlH,MAAM,CAACC,MAAM,CAACkH,kBAAkB,CAAC,CAACP,IAAI,CAAEQ,MAAkD,IAAKA,MAAM,CAAClJ,WAAW,CAAC,EAAE,OAAO,IAAI;MACnI,OAAO,KAAK;IACd,CAAC,CAAC;IACF0E,eAAS,CAAC+D,eAAe,EAAE,IAAI,CAACzB,cAAc,EAAEsB,YAAY,EAAE,iBAAiB,CAAC;;IAEhF;IACA,IAAI,IAAI,CAACtB,cAAc,CAACjG,uCAAiC,CAAC,IAAI,IAAI,CAACiG,cAAc,CAACjG,uCAAiC,CAAC,EAAE;MACpH,OAAO,IAAI,CAACiG,cAAc,CAACjG,uCAAiC,CAAC;MAC7DuH,YAAY,GAAGA,YAAY,CAACc,MAAM,CAAE1B,EAAE,IAAKA,EAAE,KAAK3G,uCAAiC,CAAC;IACtF;IACA;IACA,MAAMsI,YAAY,GAAGf,YAAY,CAACpB,GAAG,CAAC,MAAOC,WAAW,IAAK;MAC3D,IAAI,CAACA,WAAW,EAAE;MAClB,IAAI;QACF,MAAM9E,OAAO,GAAG,IAAI,CAAC2E,cAAc,CAACG,WAAW,CAAC;QAChD;QACA,IAAI,IAAI,CAACW,aAAa,KAAKX,WAAW,IAAI9E,OAAO,CAACsF,IAAI,KAAKpD,+BAAyB,EAAE;UACpF;QACF;QACA;QACA;QACA;QACA,IAAI,CAAC+E,wBAAwB,CAACjH,OAAO,CAAC;QACtC,IAAIA,OAAO,CAACkH,MAAM,KAAK9E,8BAAwB,EAAE,MAAMpC,OAAO,CAACoH,IAAI,CAAC;UAAEC,WAAW,EAAE,IAAI,CAAC5B,aAAa,KAAKX;QAAY,CAAC,CAAC;QACxH;QACA;QACA,IAAI9E,OAAO,CAACsF,IAAI,KAAKpD,6BAAuB,EAAE;UAC5C,IAAI,CAACoF,qBAAqB,CAACxC,WAAW,CAAC;QACzC;MACF,CAAC,CAAC,OAAOyC,KAAK,EAAE;QACdlF,eAAS,CAACkF,KAAK,EAAE,kCAAkC,CAAC;MACtD;IACF,CAAC,CAAC;IAEF,IAAI,CAACC,kBAAkB,GAAG,MAAMlF,oEAAsC,CAAC;MAAEzD,WAAW,EAAE,IAAI,CAACiH,WAAW,CAACjH;IAAiC,CAAC,CAAC;IAC1I,IAAI,CAACqI,MAAM,GAAG9E,0BAAoB;IAClC,MAAM8D,OAAO,CAACC,GAAG,CAACa,YAAY,CAAC;IAE/B,MAAMW,kBAAkB,GAAGnD,WAAW,CAAC6B,IAAI,CAAEvB,WAAW,IAAK;MAAA,IAAA8C,qBAAA,EAAAC,sBAAA;MAC3D,OAAO,EAAAD,qBAAA,OAAI,CAACjD,cAAc,CAACG,WAAW,CAAC,cAAA8C,qBAAA,uBAAhCA,qBAAA,CAAkCtC,IAAI,MAAKpD,+BAAyB,MAAA2F,sBAAA,GAAI,IAAI,CAACnE,WAAW,CAAClG,QAAQ,cAAAqK,sBAAA,uBAAzBA,sBAAA,CAA4B/C,WAAW,CAAC,CAACnH,WAAW;IACrI,CAAC,CAAC;IAEF,IAAIgK,kBAAkB,EAAE;MACtB,IAAI,CAAC/D,UAAU,CAACkE,2BAA2B,CAAC,CAAC;IAC/C;;IAEA;IACA;IACA,IAAI,CAAC1B,eAAe,IAAIuB,kBAAkB,EAAE;MAC1C;MACA,MAAM,IAAI,CAACI,0BAA0B,CAAC,KAAK,EAAE;QAAEC,uBAAuB,EAAE;MAAK,CAAC,CAAC;IACjF;EACF;EAEA,MAAaC,OAAOA,CAAA,EAA6C;IAC/D;IACA;IACA,IAAI,IAAI,CAACC,oBAAoB,IAAI,IAAI,CAAChB,MAAM,KAAK9E,8BAAwB,IAAI,IAAI,CAACgG,QAAQ,EAAE,OAAO,IAAI,CAACA,QAAQ;IAChH,IAAI,CAACxE,UAAU,CAACyE,IAAI,CAAC,CAAC;IACtB,OAAO,IAAInC,OAAO,CAAC,CAACoC,OAAO,EAAEC,MAAM,KAAK;MACtC,IAAI,CAACC,IAAI,CAACrG,8BAAwB,EAAE,MAAM;QACxC,OAAOmG,OAAO,CAAC,IAAI,CAACF,QAAQ,CAAC;MAC/B,CAAC,CAAC;MACF,IAAI,CAACI,IAAI,CAACrG,4BAAsB,EAAGuG,GAAY,IAAK;QAClD,OAAOH,MAAM,CAACG,GAAG,CAAC;MACpB,CAAC,CAAC;IACJ,CAAC,CAAC;EACJ;EAEA,MAAcX,0BAA0BA,CAACY,0BAAmC,EAAE7F,OAA8C,EAAiB;IAC3I,IAAI6F,0BAA0B,EAAE;IAChC,MAAMC,cAAiD,GAAG,CAAC,CAAC;IAC5DnJ,MAAM,CAACiF,IAAI,CAAC,IAAI,CAACC,cAAc,CAAC,CAACkE,OAAO,CAAC,MAAO/D,WAAW,IAAK;MAC9D,MAAM9E,OAAO,GAAG,IAAI,CAAC2E,cAAc,CAACG,WAAW,CAAC;MAChD,IAAI,CAAA9E,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEsF,IAAI,MAAKpD,+BAAyB,EAAE;QAC/CG,eAAS,CAAC,sBAAsB,EAAE,IAAI,CAACoD,aAAa,EAAEX,WAAW,CAAC;QAClE,IAAI,CAACmC,wBAAwB,CAACjH,OAAO,CAAC;QACtC;QACA,IAAI,IAAI,CAACyF,aAAa,KAAKX,WAAW,EAAE;UACtC;QACF;QACA,IAAI9E,OAAO,CAACkH,MAAM,KAAK9E,8BAAwB,EAAE;UAC/C,MAAMpC,OAAO,CACVoH,IAAI,CAAC;YAAEC,WAAW,EAAE,IAAI,CAAC5B,aAAa,KAAKX;UAAY,CAAC,CAAC,CACzDgE,IAAI,CAAC,MAAM;YACVF,cAAc,CAAC9D,WAAW,CAAC,GAAI,IAAI,CAACpB,WAAW,CAAClG,QAAQ,CAA8CsH,WAAW,CAAC;YAClH,IAAI,CAAClB,UAAU,CAACmF,eAAe,CAACH,cAAc,EAAE;cAAEZ,uBAAuB,EAAE,CAAC,EAAClF,OAAO,aAAPA,OAAO,eAAPA,OAAO,CAAEkF,uBAAuB;YAAC,CAAC,CAAC;YAChH,OAAOgB,SAAS;UAClB,CAAC,CAAC,CACDC,KAAK,CAAE1B,KAAK,IAAKlF,eAAS,CAACkF,KAAK,EAAE,kCAAkC,CAAC,CAAC;QAC3E,CAAC,MAAM,IAAIvH,OAAO,CAACkH,MAAM,KAAK9E,0BAAoB,EAAE;UAClDwG,cAAc,CAAC9D,WAAW,CAAC,GAAI,IAAI,CAACpB,WAAW,CAAClG,QAAQ,CAA8CsH,WAAW,CAAC;UAClH,IAAI,CAAClB,UAAU,CAACmF,eAAe,CAACH,cAAc,EAAE;YAAEZ,uBAAuB,EAAE,CAAC,EAAClF,OAAO,aAAPA,OAAO,eAAPA,OAAO,CAAEkF,uBAAuB;UAAC,CAAC,CAAC;QAClH;MACF;IACF,CAAC,CAAC;EACJ;EAEQV,qBAAqBA,CAACxC,WAAmB,EAAQ;IACvDzC,cAAQ,CAAC,oBAAoB,EAAEyC,WAAW,CAAC;IAC3C,IAAI,IAAI,CAACH,cAAc,CAACG,WAAW,CAAC,CAACQ,IAAI,KAAKpD,6BAAuB,EAAE;MAAA,IAAAiH,YAAA,EAAAC,sBAAA,EAAAC,uBAAA,EAAAC,uBAAA;MACrE,IAAI,CAAC1F,UAAU,CAAC2F,eAAe,CAC7BzE,WAAW,EACXtC,6CAAsB,CACpBsC,WAAW,EACX,IAAI,CAACH,cAAc,CAACG,WAAW,CAAC,GAAAqE,YAAA,GAC/B,IAAI,CAACzF,WAAW,CAAClG,QAAQ,CAA8CsH,WAAW,CAAC,cAAAqE,YAAA,uBAApFA,YAAA,CAAsFxC,YACxF,CAAC,EACD,EAAAyC,sBAAA,OAAI,CAACtG,OAAO,CAACa,QAAQ,cAAAyF,sBAAA,uBAArBA,sBAAA,CAAuBI,iBAAiB,KAAI7G,sCAAmB,EAAA9C,yBAAA,CAAAA,yBAAA,KAE1D,IAAI,CAACiD,OAAO,CAACa,QAAQ;QACxBQ,YAAY,EAAE,EAAAkF,uBAAA,OAAI,CAACvG,OAAO,CAACa,QAAQ,cAAA0F,uBAAA,uBAArBA,uBAAA,CAAuBlF,YAAY,KAAI,CAAC;QACtDC,aAAa,EAAE,EAAAkF,uBAAA,OAAI,CAACxG,OAAO,CAACa,QAAQ,cAAA2F,uBAAA,uBAArBA,uBAAA,CAAuBlF,aAAa,KAAI;MAAa,EAExE,CAAC;IACH;EACF;EAEQC,2BAA2BA,CAAA,EAAS;IAC1C,IAAI,CAACT,UAAU,CAAC6F,EAAE,CAAChH,2CAAwB,EAAE,MAAOtD,MAA8D,IAAK;MACrH,IAAI;QACF,MAAM,IAAI,CAACwK,SAAS,CAAUxK,MAAM,CAACa,OAAO,EAAEb,MAAM,CAACyK,WAAW,CAAC;MACnE,CAAC,CAAC,OAAOrC,KAAK,EAAE;QACdlF,eAAS,CAAE,sCAAqClD,MAAM,CAACa,OAAQ,EAAC,EAAEuH,KAAK,CAAC;MAC1E;IACF,CAAC,CAAC;IACF,IAAI,CAAC3D,UAAU,CAAC6F,EAAE,CAAChH,2DAAwC,EAAE,MAAOtD,MAA+C,IAAK;MACtH,MAAM,IAAI,CAAC4I,0BAA0B,CAAC5I,MAAM,CAACwJ,0BAA0B,CAAC;IAC1E,CAAC,CAAC;IACF,IAAI,CAAC/E,UAAU,CAAC6F,EAAE,CAAChH,gDAA6B,EAAE,YAAY;MAC5D,IAAI;QACF,MAAM,IAAI,CAACsH,MAAM,CAAC,CAAC;MACrB,CAAC,CAAC,OAAOxC,KAAK,EAAE;QACdlF,eAAS,CAAE,2BAA0B,EAAEkF,KAAK,CAAC;MAC/C;IACF,CAAC,CAAC;IACF,IAAI,CAAC3D,UAAU,CAAC6F,EAAE,CAAChH,sDAAmC,EAAE,MAAOwH,UAAmB,IAAK;MACrF5H,eAAS,CAAC,wBAAwB,EAAE4H,UAAU,CAAC;MAC/C,IAAI,CAACC,IAAI,CAACzH,sDAAmC,EAAEwH,UAAU,CAAC;MAC1D,MAAMjK,OAAO,GAAG,IAAI,CAAC2E,cAAc,CAACjG,uCAAiC,CAAC,IAAI,IAAI,CAACiG,cAAc,CAACjG,uCAAiC,CAAC;MAChI,IAAIsB,OAAO,EAAE;QACX,MAAMmK,mBAAmB,GAAGnK,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEkH,MAAM;QAC3C7E,eAAS,CAAC,8BAA8B,EAAE4H,UAAU,EAAEE,mBAAmB,CAAC;QAC1E,IAAIF,UAAU,KAAKE,mBAAmB,KAAK/H,0BAAoB,IAAI+H,mBAAmB,KAAK/H,+BAAyB,CAAC,EAAE;UACrHC,eAAS,CAAC,uBAAuB,CAAC;;UAElC;UACA,IAAI;YACFrC,OAAO,CAACiI,OAAO,CAAC,CAAC;UACnB,CAAC,CAAC,OAAOV,KAAK,EAAE;YACdlF,eAAS,CAAE,qDAAoD,EAAEkF,KAAK,CAAC;UACzE;QACF;MACF;IACF,CAAC,CAAC;EACJ;AACF;;;;;;;;AChVA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;UCAA;UACA;;UAEA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;;UAEA;UACA;;UAEA;UACA;UACA;;;;;WCtBA;WACA;WACA;WACA;WACA;WACA,iCAAiC,WAAW;WAC5C;WACA;;;;;WCPA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA,sDAAsD;WACtD,sCAAsC,iEAAiE;WACvG;WACA;WACA;WACA;WACA;WACA;;;;;WCzBA;WACA;WACA;WACA;WACA,yCAAyC,wCAAwC;WACjF;WACA;WACA;;;;;WCPA;;;;;WCAA;WACA;WACA;WACA,uDAAuD,iBAAiB;WACxE;WACA,gDAAgD,aAAa;WAC7D;;;;;;;;;;;;;;;;;;;;;;;;ACNyB;AACG","sources":["webpack://@web3auth/modal/./src/config.ts","webpack://@web3auth/modal/external commonjs2 \"@babel/runtime/helpers/defineProperty\"","webpack://@web3auth/modal/external commonjs2 \"@web3auth/base-provider\"","webpack://@web3auth/modal/external commonjs2 \"@web3auth/no-modal\"","webpack://@web3auth/modal/external commonjs2 \"@web3auth/ui\"","webpack://@web3auth/modal/./src/default.ts","webpack://@web3auth/modal/./src/utils.ts","webpack://@web3auth/modal/./src/modalManager.ts","webpack://@web3auth/modal/external commonjs2 \"@web3auth/base\"","webpack://@web3auth/modal/external commonjs2 \"@web3auth/ethereum-provider\"","webpack://@web3auth/modal/external commonjs2 \"@web3auth/metamask-adapter\"","webpack://@web3auth/modal/external commonjs2 \"@web3auth/openlogin-adapter\"","webpack://@web3auth/modal/external commonjs2 \"@web3auth/phantom-adapter\"","webpack://@web3auth/modal/external commonjs2 \"@web3auth/solana-provider\"","webpack://@web3auth/modal/external commonjs2 \"@web3auth/torus-evm-adapter\"","webpack://@web3auth/modal/external commonjs2 \"@web3auth/torus-solana-adapter\"","webpack://@web3auth/modal/external commonjs2 \"@web3auth/wallet-connect-v2-adapter\"","webpack://@web3auth/modal/webpack/bootstrap","webpack://@web3auth/modal/webpack/runtime/compat get default export","webpack://@web3auth/modal/webpack/runtime/create fake namespace object","webpack://@web3auth/modal/webpack/runtime/define property getters","webpack://@web3auth/modal/webpack/runtime/hasOwnProperty shorthand","webpack://@web3auth/modal/webpack/runtime/make namespace object","webpack://@web3auth/modal/./src/index.ts"],"sourcesContent":["import { CHAIN_NAMESPACES, EVM_ADAPTERS, SOLANA_ADAPTERS } from \"@web3auth/base\";\n\nimport { AdaptersModalConfig } from \"./interface\";\n\nexport const defaultSolanaDappModalConfig: AdaptersModalConfig = {\n chainNamespace: CHAIN_NAMESPACES.SOLANA,\n adapters: {\n [SOLANA_ADAPTERS.TORUS_SOLANA]: {\n label: \"Torus Wallet\",\n showOnModal: true,\n showOnMobile: true,\n showOnDesktop: true,\n },\n [SOLANA_ADAPTERS.OPENLOGIN]: {\n label: \"OpenLogin\",\n showOnModal: true,\n showOnMobile: true,\n showOnDesktop: true,\n },\n [SOLANA_ADAPTERS.PHANTOM]: {\n label: \"Phantom\",\n showOnModal: true,\n showOnMobile: true,\n showOnDesktop: true,\n },\n },\n};\n\nexport const defaultEvmDappModalConfig: AdaptersModalConfig = {\n chainNamespace: CHAIN_NAMESPACES.EIP155,\n adapters: {\n [EVM_ADAPTERS.TORUS_EVM]: {\n label: \"Torus Wallet\",\n showOnModal: true,\n showOnMobile: true,\n showOnDesktop: true,\n },\n [EVM_ADAPTERS.METAMASK]: {\n label: \"MetaMask\",\n showOnModal: true,\n showOnMobile: true,\n showOnDesktop: true,\n },\n [EVM_ADAPTERS.OPENLOGIN]: {\n label: \"OpenLogin\",\n showOnModal: true,\n showOnMobile: true,\n showOnDesktop: true,\n },\n [EVM_ADAPTERS.WALLET_CONNECT_V2]: {\n label: \"Wallet Connect\",\n showOnModal: true,\n showOnMobile: true,\n showOnDesktop: true,\n },\n },\n};\n\nexport const defaultSolanaWalletModalConfig: AdaptersModalConfig = {\n chainNamespace: CHAIN_NAMESPACES.SOLANA,\n adapters: {\n [SOLANA_ADAPTERS.OPENLOGIN]: {\n label: \"OpenLogin\",\n showOnModal: true,\n showOnMobile: true,\n showOnDesktop: true,\n },\n },\n};\n\nexport const defaultEvmWalletModalConfig: AdaptersModalConfig = {\n chainNamespace: CHAIN_NAMESPACES.EIP155,\n adapters: {\n [EVM_ADAPTERS.OPENLOGIN]: {\n label: \"OpenLogin\",\n showOnModal: true,\n showOnMobile: true,\n showOnDesktop: true,\n },\n },\n};\n\nexport const defaultOtherModalConfig: AdaptersModalConfig = {\n chainNamespace: CHAIN_NAMESPACES.OTHER,\n adapters: {\n [EVM_ADAPTERS.OPENLOGIN]: {\n label: \"OpenLogin\",\n showOnModal: true,\n showOnMobile: true,\n showOnDesktop: true,\n },\n },\n};\n","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"@babel/runtime/helpers/defineProperty\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"@web3auth/base-provider\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"@web3auth/no-modal\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"@web3auth/ui\");","import type { OPENLOGIN_NETWORK_TYPE, OpenLoginOptions } from \"@toruslabs/openlogin-utils\";\nimport { CHAIN_NAMESPACES, CustomChainConfig, getChainConfig, IAdapter, WALLET_ADAPTER_TYPE, WALLET_ADAPTERS } from \"@web3auth/base\";\nimport { CommonPrivateKeyProvider, IBaseProvider } from \"@web3auth/base-provider\";\n\nexport async function getPrivateKeyProvider(chainConfig: CustomChainConfig): Promise<IBaseProvider<string>> {\n if (chainConfig.chainNamespace === CHAIN_NAMESPACES.SOLANA) {\n const { SolanaPrivateKeyProvider } = await import(\"@web3auth/solana-provider\");\n return new SolanaPrivateKeyProvider({ config: { chainConfig } });\n } else if (chainConfig.chainNamespace === CHAIN_NAMESPACES.EIP155) {\n const { EthereumPrivateKeyProvider } = await import(\"@web3auth/ethereum-provider\");\n return new EthereumPrivateKeyProvider({ config: { chainConfig } });\n } else if (chainConfig.chainNamespace === CHAIN_NAMESPACES.OTHER) {\n // Modal doesn't support ripple provider\n // Can always override this with a custom provider\n return new CommonPrivateKeyProvider();\n }\n throw new Error(`Invalid chainNamespace: ${chainConfig.chainNamespace} found while connecting to wallet`);\n}\n\n// warning: this function is not compatible with \"OTHER\" chain namespace.\nexport const getDefaultAdapterModule = async (params: {\n name: WALLET_ADAPTER_TYPE;\n clientId: string;\n customChainConfig: Partial<CustomChainConfig> & Pick<CustomChainConfig, \"chainNamespace\">;\n sessionTime?: number;\n web3AuthNetwork?: OPENLOGIN_NETWORK_TYPE;\n}): Promise<IAdapter<unknown>> => {\n const { name, customChainConfig, clientId, sessionTime, web3AuthNetwork } = params;\n if (!Object.values(CHAIN_NAMESPACES).includes(customChainConfig.chainNamespace))\n throw new Error(`Invalid chainNamespace: ${customChainConfig.chainNamespace}`);\n const finalChainConfig = {\n ...(getChainConfig(customChainConfig.chainNamespace, customChainConfig?.chainId) as CustomChainConfig),\n ...(customChainConfig || {}),\n };\n if (name === WALLET_ADAPTERS.TORUS_EVM) {\n const { TorusWalletAdapter } = await import(\"@web3auth/torus-evm-adapter\");\n const adapter = new TorusWalletAdapter({ chainConfig: finalChainConfig, clientId, sessionTime, web3AuthNetwork });\n return adapter;\n } else if (name === WALLET_ADAPTERS.TORUS_SOLANA) {\n const { SolanaWalletAdapter } = await import(\"@web3auth/torus-solana-adapter\");\n const adapter = new SolanaWalletAdapter({ chainConfig: finalChainConfig, clientId, sessionTime, web3AuthNetwork });\n return adapter;\n } else if (name === WALLET_ADAPTERS.METAMASK) {\n const { MetamaskAdapter } = await import(\"@web3auth/metamask-adapter\");\n const adapter = new MetamaskAdapter({ chainConfig: finalChainConfig, clientId, sessionTime, web3AuthNetwork });\n return adapter;\n } else if (name === WALLET_ADAPTERS.PHANTOM) {\n const { PhantomAdapter } = await import(\"@web3auth/phantom-adapter\");\n const adapter = new PhantomAdapter({ chainConfig: finalChainConfig, clientId, sessionTime, web3AuthNetwork });\n return adapter;\n } else if (name === WALLET_ADAPTERS.WALLET_CONNECT_V2) {\n const { WalletConnectV2Adapter } = await import(\"@web3auth/wallet-connect-v2-adapter\");\n const adapter = new WalletConnectV2Adapter({\n chainConfig: finalChainConfig,\n clientId,\n sessionTime,\n web3AuthNetwork,\n adapterSettings: {\n walletConnectInitOptions: {\n // Using a default wallet connect project id for web3auth modal integration\n projectId: \"d3c63f19f9582f8ba48e982057eb096b\",\n },\n },\n });\n return adapter;\n } else if (name === WALLET_ADAPTERS.OPENLOGIN) {\n const { OpenloginAdapter, getOpenloginDefaultOptions } = await import(\"@web3auth/openlogin-adapter\");\n\n const privateKeyProvider: IBaseProvider<string> = await getPrivateKeyProvider(finalChainConfig);\n\n const defaultOptions = getOpenloginDefaultOptions();\n const adapter = new OpenloginAdapter({\n ...defaultOptions,\n clientId,\n chainConfig: { ...finalChainConfig },\n adapterSettings: { ...(defaultOptions.adapterSettings as OpenLoginOptions), clientId, network: web3AuthNetwork },\n sessionTime,\n web3AuthNetwork,\n privateKeyProvider,\n });\n return adapter;\n }\n throw new Error(\"Invalid wallet adapter name\");\n};\n","interface NavigatorLanguage {\n userLanguage?: string;\n}\n\nexport const languageMap = {\n en: \"english\",\n de: \"german\",\n ja: \"japanese\",\n ko: \"korean\",\n zh: \"mandarin\",\n es: \"spanish\",\n fr: \"french\",\n pt: \"portuguese\",\n nl: \"dutch\",\n};\n\nexport const getUserLanguage = (defaultLanguage: string | undefined) => {\n let userLanguage = defaultLanguage;\n if (!userLanguage) {\n const browserLanguage =\n typeof window !== \"undefined\" ? (window.navigator as NavigatorLanguage).userLanguage || window.navigator.language || \"en-US\" : \"en-US\";\n userLanguage = browserLanguage.split(\"-\")[0];\n }\n return Object.prototype.hasOwnProperty.call(languageMap, userLanguage) ? userLanguage : \"en\";\n};\n","import {\n ADAPTER_CATEGORY,\n ADAPTER_EVENTS,\n ADAPTER_STATUS,\n BaseAdapterConfig,\n CHAIN_NAMESPACES,\n CustomChainConfig,\n getChainConfig,\n log,\n LoginMethodConfig,\n SafeEventEmitterProvider,\n WALLET_ADAPTER_TYPE,\n WALLET_ADAPTERS,\n} from \"@web3auth/base\";\nimport { CommonJRPCProvider } from \"@web3auth/base-provider\";\nimport { Web3AuthNoModal, Web3AuthNoModalOptions } from \"@web3auth/no-modal\";\nimport type { OpenloginAdapter } from \"@web3auth/openlogin-adapter\";\nimport { getAdapterSocialLogins, LOGIN_MODAL_EVENTS, LoginModal, OPENLOGIN_PROVIDERS, UIConfig } from \"@web3auth/ui\";\n\nimport {\n defaultEvmDappModalConfig,\n defaultEvmWalletModalConfig,\n defaultOtherModalConfig,\n defaultSolanaDappModalConfig,\n defaultSolanaWalletModalConfig,\n} from \"./config\";\nimport { getDefaultAdapterModule, getPrivateKeyProvider } from \"./default\";\nimport { AdaptersModalConfig, IWeb3AuthModal, ModalConfig } from \"./interface\";\nimport { getUserLanguage } from \"./utils\";\n\nexport interface Web3AuthOptions extends Web3AuthNoModalOptions {\n /**\n * web3auth instance provides different adapters for different type of usages. If you are dapp and want to\n * use external wallets like metamask, then you can use the `DAPP` authMode.\n * If you are a wallet and only want to use you own wallet implementations along with openlogin,\n * then you should use `WALLET` authMode.\n *\n * @defaultValue `DAPP`\n */\n authMode?: \"DAPP\" | \"WALLET\";\n /**\n * Config for configuring modal ui display properties\n */\n uiConfig?: Omit<UIConfig, \"adapterListener\">;\n}\n\nexport class Web3Auth extends Web3AuthNoModal implements IWeb3AuthModal {\n public loginModal: LoginModal;\n\n readonly options: Web3AuthOptions;\n\n private modalConfig: AdaptersModalConfig = defaultEvmDappModalConfig;\n\n constructor(options: Web3AuthOptions) {\n super(options);\n this.options = { ...options };\n const providedChainConfig = this.options.chainConfig;\n if (providedChainConfig.chainNamespace === CHAIN_NAMESPACES.SOLANA) {\n if (options.authMode === \"WALLET\") {\n // default config for solana wallet modal\n this.modalConfig = defaultSolanaWalletModalConfig;\n } else {\n // default config for solana dapp modal\n this.modalConfig = defaultSolanaDappModalConfig;\n }\n } else if (providedChainConfig.chainNamespace === CHAIN_NAMESPACES.EIP155) {\n if (options.authMode === \"WALLET\") {\n // default config for evm wallet modal\n this.modalConfig = defaultEvmWalletModalConfig;\n } else {\n // default config for evm dapp modal\n this.modalConfig = defaultEvmDappModalConfig;\n }\n } else if (providedChainConfig.chainNamespace === CHAIN_NAMESPACES.OTHER) {\n this.modalConfig = defaultOtherModalConfig;\n } else {\n throw new Error(`Invalid chainNamespace provided: ${providedChainConfig.chainNamespace}`);\n }\n\n // get userLanguage\n const defaultLanguage = getUserLanguage(this.options.uiConfig?.defaultLanguage);\n\n this.loginModal = new LoginModal({\n theme: this.options.uiConfig?.theme,\n appName: this.options.uiConfig?.appName || \"blockchain\",\n appLogo: this.options.uiConfig?.appLogo || \"\",\n adapterListener: this,\n displayErrorsOnModal: this.options.uiConfig?.displayErrorsOnModal,\n defaultLanguage,\n modalZIndex: this.options.uiConfig?.modalZIndex || \"99998\",\n web3AuthNetwork: this.options.web3AuthNetwork,\n loginGridCol: this.options.uiConfig?.loginGridCol || 3,\n primaryButton: this.options.uiConfig?.primaryButton || \"socialLogin\",\n });\n this.subscribeToLoginModalEvents();\n }\n\n public async initModal(params?: { modalConfig?: Record<WALLET_ADAPTER_TYPE, ModalConfig> }): Promise<void> {\n super.checkInitRequirements();\n await this.loginModal.initModal();\n const providedChainConfig = this.options.chainConfig;\n\n // merge default adapters with the custom configured adapters.\n const allAdapters = [...new Set([...Object.keys(this.modalConfig.adapters || {}), ...Object.keys(this.walletAdapters)])];\n\n const adapterConfigurationPromises = allAdapters.map(async (adapterName) => {\n // start with the default config of adapter.\n let adapterConfig = this.modalConfig.adapters?.[adapterName] || {\n label: adapterName,\n showOnModal: true,\n showOnMobile: true,\n showOnDesktop: true,\n };\n\n // override the default config of adapter if some config is being provided by the user.\n if (params?.modalConfig?.[adapterName]) {\n adapterConfig = { ...adapterConfig, ...params.modalConfig[adapterName] };\n }\n (this.modalConfig.adapters as Record<WALLET_ADAPTER_TYPE, ModalConfig>)[adapterName] = adapterConfig as ModalConfig;\n\n // check if adapter is configured/added by user and exist in walletAdapters map.\n const adapter = this.walletAdapters[adapterName];\n log.debug(\"adapter config\", adapterName, this.modalConfig.adapters?.[adapterName].showOnModal, adapter);\n\n // if adapter is not custom configured then check if it is available in default adapters.\n // and if adapter is not hidden by user\n if (!adapter && this.modalConfig.adapters?.[adapterName].showOnModal) {\n // if adapter is not configured and some default configuration is available, use it.\n const ad = await getDefaultAdapterModule({\n name: adapterName,\n customChainConfig: this.options.chainConfig,\n clientId: this.options.clientId,\n sessionTime: this.options.sessionTime,\n web3AuthNetwork: this.options.web3AuthNetwork,\n });\n\n this.walletAdapters[adapterName] = ad;\n return adapterName;\n } else if (adapter?.type === ADAPTER_CATEGORY.IN_APP || adapter?.type === ADAPTER_CATEGORY.EXTERNAL || adapterName === this.cachedAdapter) {\n if (!this.modalConfig.adapters?.[adapterName].showOnModal) return;\n // add client id to adapter, same web3auth client id can be used in adapter.\n // this id is being overridden if user is also passing client id in adapter's constructor.\n this.walletAdapters[adapterName].setAdapterSettings({\n clientId: this.options.clientId,\n sessionTime: this.options.sessionTime,\n web3AuthNetwork: this.options.web3AuthNetwork,\n });\n\n // if adapter doesn't have any chainConfig then we will set the chainConfig based of passed chainNamespace\n // and chainNamespace.\n if (!adapter.chainConfigProxy) {\n const chainConfig = {\n ...getChainConfig(providedChainConfig.chainNamespace, this.coreOptions.chainConfig?.chainId),\n ...this.coreOptions.chainConfig,\n } as CustomChainConfig;\n this.walletAdapters[adapterName].setAdapterSettings({ chainConfig });\n }\n\n if (adapterName === WALLET_ADAPTERS.OPENLOGIN) {\n const openloginAdapter = this.walletAdapters[adapterName] as OpenloginAdapter;\n if (!openloginAdapter.privateKeyProvider) {\n const currentPrivateKeyProvider = await getPrivateKeyProvider(openloginAdapter.chainConfigProxy as CustomChainConfig);\n openloginAdapter.setAdapterSettings({ privateKeyProvider: currentPrivateKeyProvider });\n }\n }\n\n return adapterName;\n }\n });\n\n let adapterNames = await Promise.all(adapterConfigurationPromises);\n const hasInAppWallets = Object.values(this.walletAdapters).some((adapter) => {\n if (adapter.type !== ADAPTER_CATEGORY.IN_APP) return false;\n if (this.modalConfig.adapters?.[adapter.name]?.showOnModal !== true) return false;\n if (!this.modalConfig.adapters?.[adapter.name]?.loginMethods) return true;\n const mergedLoginMethods = getAdapterSocialLogins(\n adapter.name,\n this.walletAdapters[adapter.name],\n (this.modalConfig.adapters as Record<WALLET_ADAPTER_TYPE, ModalConfig>)[adapter.name]?.loginMethods\n );\n if (Object.values(mergedLoginMethods).some((method: LoginMethodConfig[keyof LoginMethodConfig]) => method.showOnModal)) return true;\n return false;\n });\n log.debug(hasInAppWallets, this.walletAdapters, adapterNames, \"hasInAppWallets\");\n\n // if both wc1 and wc2 are configured, give precedence to wc2.\n if (this.walletAdapters[WALLET_ADAPTERS.WALLET_CONNECT_V1] && this.walletAdapters[WALLET_ADAPTERS.WALLET_CONNECT_V2]) {\n delete this.walletAdapters[WALLET_ADAPTERS.WALLET_CONNECT_V1];\n adapterNames = adapterNames.filter((ad) => ad !== WALLET_ADAPTERS.WALLET_CONNECT_V1);\n }\n // Now, initialize the adapters.\n const initPromises = adapterNames.map(async (adapterName) => {\n if (!adapterName) return;\n try {\n const adapter = this.walletAdapters[adapterName];\n // only initialize a external adapter here if it is a cached adapter.\n if (this.cachedAdapter !== adapterName && adapter.type === ADAPTER_CATEGORY.EXTERNAL) {\n return;\n }\n // in-app wallets or cached wallet (being connected or already connected) are initialized first.\n // if adapter is configured thn only initialize in app or cached adapter.\n // external wallets are initialized on INIT_EXTERNAL_WALLET event.\n this.subscribeToAdapterEvents(adapter);\n if (adapter.status === ADAPTER_STATUS.NOT_READY) await adapter.init({ autoConnect: this.cachedAdapter === adapterName });\n // note: not adding cachedWallet to modal if it is external wallet.\n // adding it later if no in-app wallets are available.\n if (adapter.type === ADAPTER_CATEGORY.IN_APP) {\n this.initializeInAppWallet(adapterName);\n }\n } catch (error) {\n log.error(error, \"error while initializing adapter\");\n }\n });\n\n this.commonJRPCProvider = await CommonJRPCProvider.getProviderInstance({ chainConfig: this.coreOptions.chainConfig as CustomChainConfig });\n this.status = ADAPTER_STATUS.READY;\n await Promise.all(initPromises);\n\n const hasExternalWallets = allAdapters.some((adapterName) => {\n return this.walletAdapters[adapterName]?.type === ADAPTER_CATEGORY.EXTERNAL && this.modalConfig.adapters?.[adapterName].showOnModal;\n });\n\n if (hasExternalWallets) {\n this.loginModal.initExternalWalletContainer();\n }\n\n // variable to check if we have any in app wallets\n // currently all default in app and external wallets can be hidden or shown based on config.\n if (!hasInAppWallets && hasExternalWallets) {\n // if no in app wallet is available then initialize external wallets in modal\n await this.initExternalWalletAdapters(false, { showExternalWalletsOnly: true });\n }\n }\n\n public async connect(): Promise<SafeEventEmitterProvider | null> {\n // if (!this.loginModal.initialized) throw new Error(\"Login modal is not initialized\");\n // if already connected return provider\n if (this.connectedAdapterName && this.status === ADAPTER_STATUS.CONNECTED && this.provider) return this.provider;\n this.loginModal.open();\n return new Promise((resolve, reject) => {\n this.once(ADAPTER_EVENTS.CONNECTED, () => {\n return resolve(this.provider);\n });\n this.once(ADAPTER_EVENTS.ERRORED, (err: unknown) => {\n return reject(err);\n });\n });\n }\n\n private async initExternalWalletAdapters(externalWalletsInitialized: boolean, options?: { showExternalWalletsOnly: boolean }): Promise<void> {\n if (externalWalletsInitialized) return;\n const adaptersConfig: Record<string, BaseAdapterConfig> = {};\n Object.keys(this.walletAdapters).forEach(async (adapterName) => {\n const adapter = this.walletAdapters[adapterName];\n if (adapter?.type === ADAPTER_CATEGORY.EXTERNAL) {\n log.debug(\"init external wallet\", this.cachedAdapter, adapterName);\n this.subscribeToAdapterEvents(adapter);\n // we are not initializing cached adapter here as it is already being initialized in initModal before.\n if (this.cachedAdapter === adapterName) {\n return;\n }\n if (adapter.status === ADAPTER_STATUS.NOT_READY) {\n await adapter\n .init({ autoConnect: this.cachedAdapter === adapterName })\n .then(() => {\n adaptersConfig[adapterName] = (this.modalConfig.adapters as Record<WALLET_ADAPTER_TYPE, ModalConfig>)[adapterName];\n this.loginModal.addWalletLogins(adaptersConfig, { showExternalWalletsOnly: !!options?.showExternalWalletsOnly });\n return undefined;\n })\n .catch((error) => log.error(error, \"error while initializing adapter\"));\n } else if (adapter.status === ADAPTER_STATUS.READY) {\n adaptersConfig[adapterName] = (this.modalConfig.adapters as Record<WALLET_ADAPTER_TYPE, ModalConfig>)[adapterName];\n this.loginModal.addWalletLogins(adaptersConfig, { showExternalWalletsOnly: !!options?.showExternalWalletsOnly });\n }\n }\n });\n }\n\n private initializeInAppWallet(adapterName: string): void {\n log.info(\"adapterInitResults\", adapterName);\n if (this.walletAdapters[adapterName].type === ADAPTER_CATEGORY.IN_APP) {\n this.loginModal.addSocialLogins(\n adapterName,\n getAdapterSocialLogins(\n adapterName,\n this.walletAdapters[adapterName],\n (this.modalConfig.adapters as Record<WALLET_ADAPTER_TYPE, ModalConfig>)[adapterName]?.loginMethods\n ),\n this.options.uiConfig?.loginMethodsOrder || OPENLOGIN_PROVIDERS,\n {\n ...this.options.uiConfig,\n loginGridCol: this.options.uiConfig?.loginGridCol || 3,\n primaryButton: this.options.uiConfig?.primaryButton || \"socialLogin\",\n }\n );\n }\n }\n\n private subscribeToLoginModalEvents(): void {\n this.loginModal.on(LOGIN_MODAL_EVENTS.LOGIN, async (params: { adapter: WALLET_ADAPTER_TYPE; loginParams: unknown }) => {\n try {\n await this.connectTo<unknown>(params.adapter, params.loginParams);\n } catch (error) {\n log.error(`Error while connecting to adapter: ${params.adapter}`, error);\n }\n });\n this.loginModal.on(LOGIN_MODAL_EVENTS.INIT_EXTERNAL_WALLETS, async (params: { externalWalletsInitialized: boolean }) => {\n await this.initExternalWalletAdapters(params.externalWalletsInitialized);\n });\n this.loginModal.on(LOGIN_MODAL_EVENTS.DISCONNECT, async () => {\n try {\n await this.logout();\n } catch (error) {\n log.error(`Error while disconnecting`, error);\n }\n });\n this.loginModal.on(LOGIN_MODAL_EVENTS.MODAL_VISIBILITY, async (visibility: boolean) => {\n log.debug(\"is login modal visible\", visibility);\n this.emit(LOGIN_MODAL_EVENTS.MODAL_VISIBILITY, visibility);\n const adapter = this.walletAdapters[WALLET_ADAPTERS.WALLET_CONNECT_V2] || this.walletAdapters[WALLET_ADAPTERS.WALLET_CONNECT_V1];\n if (adapter) {\n const walletConnectStatus = adapter?.status;\n log.debug(\"trying refreshing wc session\", visibility, walletConnectStatus);\n if (visibility && (walletConnectStatus === ADAPTER_STATUS.READY || walletConnectStatus === ADAPTER_STATUS.CONNECTING)) {\n log.debug(\"refreshing wc session\");\n\n // refreshing session for wallet connect whenever modal is opened.\n try {\n adapter.connect();\n } catch (error) {\n log.error(`Error while disconnecting to wallet connect in core`, error);\n }\n }\n }\n });\n }\n}\n","module.exports = require(\"@web3auth/base\");","module.exports = require(\"@web3auth/ethereum-provider\");","module.exports = require(\"@web3auth/metamask-adapter\");","module.exports = require(\"@web3auth/openlogin-adapter\");","module.exports = require(\"@web3auth/phantom-adapter\");","module.exports = require(\"@web3auth/solana-provider\");","module.exports = require(\"@web3auth/torus-evm-adapter\");","module.exports = require(\"@web3auth/torus-solana-adapter\");","module.exports = require(\"@web3auth/wallet-connect-v2-adapter\");","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","var getProto = Object.getPrototypeOf ? (obj) => (Object.getPrototypeOf(obj)) : (obj) => (obj.__proto__);\nvar leafPrototypes;\n// create a fake namespace object\n// mode & 1: value is a module id, require it\n// mode & 2: merge all properties of value into the ns\n// mode & 4: return value when already ns object\n// mode & 16: return value when it's Promise-like\n// mode & 8|1: behave like require\n__webpack_require__.t = function(value, mode) {\n\tif(mode & 1) value = this(value);\n\tif(mode & 8) return value;\n\tif(typeof value === 'object' && value) {\n\t\tif((mode & 4) && value.__esModule) return value;\n\t\tif((mode & 16) && typeof value.then === 'function') return value;\n\t}\n\tvar ns = Object.create(null);\n\t__webpack_require__.r(ns);\n\tvar def = {};\n\tleafPrototypes = leafPrototypes || [null, getProto({}), getProto([]), getProto(getProto)];\n\tfor(var current = mode & 2 && value; typeof current == 'object' && !~leafPrototypes.indexOf(current); current = getProto(current)) {\n\t\tObject.getOwnPropertyNames(current).forEach((key) => (def[key] = () => (value[key])));\n\t}\n\tdef['default'] = () => (value);\n\t__webpack_require__.d(ns, def);\n\treturn ns;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","export * from \"./config\";\nexport * from \"./interface\";\nexport * from \"./modalManager\";\n"],"names":["CHAIN_NAMESPACES","EVM_ADAPTERS","SOLANA_ADAPTERS","defaultSolanaDappModalConfig","chainNamespace","SOLANA","adapters","TORUS_SOLANA","label","showOnModal","showOnMobile","showOnDesktop","OPENLOGIN","PHANTOM","defaultEvmDappModalConfig","EIP155","TORUS_EVM","METAMASK","WALLET_CONNECT_V2","defaultSolanaWalletModalConfig","defaultEvmWalletModalConfig","defaultOtherModalConfig","OTHER","getChainConfig","WALLET_ADAPTERS","CommonPrivateKeyProvider","getPrivateKeyProvider","chainConfig","SolanaPrivateKeyProvider","config","EthereumPrivateKeyProvider","Error","getDefaultAdapterModule","params","name","customChainConfig","clientId","sessionTime","web3AuthNetwork","Object","values","includes","finalChainConfig","_objectSpread","chainId","TorusWalletAdapter","adapter","SolanaWalletAdapter","MetamaskAdapter","PhantomAdapter","WalletConnectV2Adapter","adapterSettings","walletConnectInitOptions","projectId","OpenloginAdapter","getOpenloginDefaultOptions","privateKeyProvider","defaultOptions","network","languageMap","en","de","ja","ko","zh","es","fr","pt","nl","getUserLanguage","defaultLanguage","userLanguage","browserLanguage","window","navigator","language","split","prototype","hasOwnProperty","call","ADAPTER_CATEGORY","ADAPTER_EVENTS","ADAPTER_STATUS","log","CommonJRPCProvider","Web3AuthNoModal","getAdapterSocialLogins","LOGIN_MODAL_EVENTS","LoginModal","OPENLOGIN_PROVIDERS","Web3Auth","constructor","options","_this$options$uiConfi","_this$options$uiConfi2","_this$options$uiConfi3","_this$options$uiConfi4","_this$options$uiConfi5","_this$options$uiConfi6","_this$options$uiConfi7","_this$options$uiConfi8","_defineProperty","providedChainConfig","authMode","modalConfig","uiConfig","loginModal","theme","appName","appLogo","adapterListener","displayErrorsOnModal","modalZIndex","loginGridCol","primaryButton","subscribeToLoginModalEvents","initModal","checkInitRequirements","allAdapters","Set","keys","walletAdapters","adapterConfigurationPromises","map","adapterName","_this$modalConfig$ada","_params$modalConfig","_this$modalConfig$ada2","_this$modalConfig$ada3","adapterConfig","debug","ad","type","IN_APP","EXTERNAL","cachedAdapter","_this$modalConfig$ada4","setAdapterSettings","chainConfigProxy","_this$coreOptions$cha","coreOptions","openloginAdapter","currentPrivateKeyProvider","adapterNames","Promise","all","hasInAppWallets","some","_this$modalConfig$ada5","_this$modalConfig$ada6","_this$modalConfig$ada7","_this$modalConfig$ada8","_adapter$name","loginMethods","mergedLoginMethods","method","WALLET_CONNECT_V1","filter","initPromises","subscribeToAdapterEvents","status","NOT_READY","init","autoConnect","initializeInAppWallet","error","commonJRPCProvider","getProviderInstance","READY","hasExternalWallets","_this$walletAdapters$","_this$modalConfig$ada9","initExternalWalletContainer","initExternalWalletAdapters","showExternalWalletsOnly","connect","connectedAdapterName","CONNECTED","provider","open","resolve","reject","once","ERRORED","err","externalWalletsInitialized","adaptersConfig","forEach","then","addWalletLogins","undefined","catch","info","_adapterName","_this$options$uiConfi9","_this$options$uiConfi10","_this$options$uiConfi11","addSocialLogins","loginMethodsOrder","on","LOGIN","connectTo","loginParams","INIT_EXTERNAL_WALLETS","DISCONNECT","logout","MODAL_VISIBILITY","visibility","emit","walletConnectStatus","CONNECTING"],"sourceRoot":""}
|
package/dist/modal.esm.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { CHAIN_NAMESPACES, SOLANA_ADAPTERS, EVM_ADAPTERS, getChainConfig, WALLET_ADAPTERS, log, ADAPTER_CATEGORY, ADAPTER_STATUS, ADAPTER_EVENTS } from '@web3auth/base';
|
|
2
2
|
import _defineProperty from '@babel/runtime/helpers/defineProperty';
|
|
3
|
+
import { CommonPrivateKeyProvider, CommonJRPCProvider } from '@web3auth/base-provider';
|
|
3
4
|
import { Web3AuthNoModal } from '@web3auth/no-modal';
|
|
4
5
|
import { LoginModal, getAdapterSocialLogins, OPENLOGIN_PROVIDERS, LOGIN_MODAL_EVENTS } from '@web3auth/ui';
|
|
5
6
|
|
|
@@ -47,7 +48,7 @@ const defaultEvmDappModalConfig = {
|
|
|
47
48
|
showOnMobile: true,
|
|
48
49
|
showOnDesktop: true
|
|
49
50
|
},
|
|
50
|
-
[EVM_ADAPTERS.
|
|
51
|
+
[EVM_ADAPTERS.WALLET_CONNECT_V2]: {
|
|
51
52
|
label: "Wallet Connect",
|
|
52
53
|
showOnModal: true,
|
|
53
54
|
showOnMobile: true,
|
|
@@ -91,6 +92,32 @@ const defaultOtherModalConfig = {
|
|
|
91
92
|
|
|
92
93
|
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; }
|
|
93
94
|
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; }
|
|
95
|
+
async function getPrivateKeyProvider(chainConfig) {
|
|
96
|
+
if (chainConfig.chainNamespace === CHAIN_NAMESPACES.SOLANA) {
|
|
97
|
+
const {
|
|
98
|
+
SolanaPrivateKeyProvider
|
|
99
|
+
} = await import('@web3auth/solana-provider');
|
|
100
|
+
return new SolanaPrivateKeyProvider({
|
|
101
|
+
config: {
|
|
102
|
+
chainConfig
|
|
103
|
+
}
|
|
104
|
+
});
|
|
105
|
+
} else if (chainConfig.chainNamespace === CHAIN_NAMESPACES.EIP155) {
|
|
106
|
+
const {
|
|
107
|
+
EthereumPrivateKeyProvider
|
|
108
|
+
} = await import('@web3auth/ethereum-provider');
|
|
109
|
+
return new EthereumPrivateKeyProvider({
|
|
110
|
+
config: {
|
|
111
|
+
chainConfig
|
|
112
|
+
}
|
|
113
|
+
});
|
|
114
|
+
} else if (chainConfig.chainNamespace === CHAIN_NAMESPACES.OTHER) {
|
|
115
|
+
// Modal doesn't support ripple provider
|
|
116
|
+
// Can always override this with a custom provider
|
|
117
|
+
return new CommonPrivateKeyProvider();
|
|
118
|
+
}
|
|
119
|
+
throw new Error(`Invalid chainNamespace: ${chainConfig.chainNamespace} found while connecting to wallet`);
|
|
120
|
+
}
|
|
94
121
|
// warning: this function is not compatible with "OTHER" chain namespace.
|
|
95
122
|
const getDefaultAdapterModule = async params => {
|
|
96
123
|
const {
|
|
@@ -146,15 +173,21 @@ const getDefaultAdapterModule = async params => {
|
|
|
146
173
|
web3AuthNetwork
|
|
147
174
|
});
|
|
148
175
|
return adapter;
|
|
149
|
-
} else if (name === WALLET_ADAPTERS.
|
|
176
|
+
} else if (name === WALLET_ADAPTERS.WALLET_CONNECT_V2) {
|
|
150
177
|
const {
|
|
151
|
-
|
|
152
|
-
} = await import('@web3auth/wallet-connect-
|
|
153
|
-
const adapter = new
|
|
178
|
+
WalletConnectV2Adapter
|
|
179
|
+
} = await import('@web3auth/wallet-connect-v2-adapter');
|
|
180
|
+
const adapter = new WalletConnectV2Adapter({
|
|
154
181
|
chainConfig: finalChainConfig,
|
|
155
182
|
clientId,
|
|
156
183
|
sessionTime,
|
|
157
|
-
web3AuthNetwork
|
|
184
|
+
web3AuthNetwork,
|
|
185
|
+
adapterSettings: {
|
|
186
|
+
walletConnectInitOptions: {
|
|
187
|
+
// Using a default wallet connect project id for web3auth modal integration
|
|
188
|
+
projectId: "d3c63f19f9582f8ba48e982057eb096b"
|
|
189
|
+
}
|
|
190
|
+
}
|
|
158
191
|
});
|
|
159
192
|
return adapter;
|
|
160
193
|
} else if (name === WALLET_ADAPTERS.OPENLOGIN) {
|
|
@@ -162,6 +195,7 @@ const getDefaultAdapterModule = async params => {
|
|
|
162
195
|
OpenloginAdapter,
|
|
163
196
|
getOpenloginDefaultOptions
|
|
164
197
|
} = await import('@web3auth/openlogin-adapter');
|
|
198
|
+
const privateKeyProvider = await getPrivateKeyProvider(finalChainConfig);
|
|
165
199
|
const defaultOptions = getOpenloginDefaultOptions();
|
|
166
200
|
const adapter = new OpenloginAdapter(_objectSpread$1(_objectSpread$1({}, defaultOptions), {}, {
|
|
167
201
|
clientId,
|
|
@@ -171,7 +205,8 @@ const getDefaultAdapterModule = async params => {
|
|
|
171
205
|
network: web3AuthNetwork
|
|
172
206
|
}),
|
|
173
207
|
sessionTime,
|
|
174
|
-
web3AuthNetwork
|
|
208
|
+
web3AuthNetwork,
|
|
209
|
+
privateKeyProvider
|
|
175
210
|
}));
|
|
176
211
|
return adapter;
|
|
177
212
|
}
|
|
@@ -186,7 +221,8 @@ const languageMap = {
|
|
|
186
221
|
zh: "mandarin",
|
|
187
222
|
es: "spanish",
|
|
188
223
|
fr: "french",
|
|
189
|
-
pt: "portuguese"
|
|
224
|
+
pt: "portuguese",
|
|
225
|
+
nl: "dutch"
|
|
190
226
|
};
|
|
191
227
|
const getUserLanguage = defaultLanguage => {
|
|
192
228
|
let userLanguage = defaultLanguage;
|
|
@@ -300,6 +336,15 @@ class Web3Auth extends Web3AuthNoModal {
|
|
|
300
336
|
chainConfig
|
|
301
337
|
});
|
|
302
338
|
}
|
|
339
|
+
if (adapterName === WALLET_ADAPTERS.OPENLOGIN) {
|
|
340
|
+
const openloginAdapter = this.walletAdapters[adapterName];
|
|
341
|
+
if (!openloginAdapter.privateKeyProvider) {
|
|
342
|
+
const currentPrivateKeyProvider = await getPrivateKeyProvider(openloginAdapter.chainConfigProxy);
|
|
343
|
+
openloginAdapter.setAdapterSettings({
|
|
344
|
+
privateKeyProvider: currentPrivateKeyProvider
|
|
345
|
+
});
|
|
346
|
+
}
|
|
347
|
+
}
|
|
303
348
|
return adapterName;
|
|
304
349
|
}
|
|
305
350
|
});
|
|
@@ -344,6 +389,9 @@ class Web3Auth extends Web3AuthNoModal {
|
|
|
344
389
|
log.error(error, "error while initializing adapter");
|
|
345
390
|
}
|
|
346
391
|
});
|
|
392
|
+
this.commonJRPCProvider = await CommonJRPCProvider.getProviderInstance({
|
|
393
|
+
chainConfig: this.coreOptions.chainConfig
|
|
394
|
+
});
|
|
347
395
|
this.status = ADAPTER_STATUS.READY;
|
|
348
396
|
await Promise.all(initPromises);
|
|
349
397
|
const hasExternalWallets = allAdapters.some(adapterName => {
|
|
@@ -365,7 +413,7 @@ class Web3Auth extends Web3AuthNoModal {
|
|
|
365
413
|
async connect() {
|
|
366
414
|
// if (!this.loginModal.initialized) throw new Error("Login modal is not initialized");
|
|
367
415
|
// if already connected return provider
|
|
368
|
-
if (this.provider) return this.provider;
|
|
416
|
+
if (this.connectedAdapterName && this.status === ADAPTER_STATUS.CONNECTED && this.provider) return this.provider;
|
|
369
417
|
this.loginModal.open();
|
|
370
418
|
return new Promise((resolve, reject) => {
|
|
371
419
|
this.once(ADAPTER_EVENTS.CONNECTED, () => {
|