@web3auth/modal 9.7.0 → 10.0.0-alpha.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/lib.cjs/node_modules/style-inject/dist/style-inject.es.js +28 -0
- package/dist/lib.cjs/{config.js → packages/modal/src/config.js} +17 -29
- package/dist/lib.cjs/{index.js → packages/modal/src/index.js} +7 -0
- package/dist/lib.cjs/packages/modal/src/modalManager.js +376 -0
- package/dist/lib.cjs/packages/modal/src/react/Web3AuthProvider.js +15 -0
- package/dist/lib.cjs/packages/modal/src/react/context/Web3AuthInnerContext.js +199 -0
- package/dist/lib.cjs/packages/modal/src/react/hooks/useWeb3Auth.js +15 -0
- package/dist/lib.cjs/packages/modal/src/react/index.js +12 -0
- package/dist/lib.cjs/packages/modal/src/ui/assets/arrow-left-dark.svg.js +7 -0
- package/dist/lib.cjs/packages/modal/src/ui/assets/arrow-left-light.svg.js +7 -0
- package/dist/lib.cjs/packages/modal/src/ui/assets/x-dark.svg.js +7 -0
- package/dist/lib.cjs/packages/modal/src/ui/assets/x-light.svg.js +7 -0
- package/dist/lib.cjs/packages/modal/src/ui/components/AdapterLoader.js +108 -0
- package/dist/lib.cjs/packages/modal/src/ui/components/Button/Button.js +34 -0
- package/dist/lib.cjs/packages/modal/src/ui/components/Button/styles.css.js +8 -0
- package/dist/lib.cjs/packages/modal/src/ui/components/ExternalWallet/ExternalWalletButton.js +44 -0
- package/dist/lib.cjs/packages/modal/src/ui/components/ExternalWallet/ExternalWalletConnect.js +67 -0
- package/dist/lib.cjs/packages/modal/src/ui/components/ExternalWallet/ExternalWalletDetails.js +34 -0
- package/dist/lib.cjs/packages/modal/src/ui/components/ExternalWallet/ExternalWalletHeader.js +46 -0
- package/dist/lib.cjs/packages/modal/src/ui/components/ExternalWallet/ExternalWalletInstall.js +167 -0
- package/dist/lib.cjs/packages/modal/src/ui/components/ExternalWallets.js +273 -0
- package/dist/lib.cjs/packages/modal/src/ui/components/Footer.js +20 -0
- package/dist/lib.cjs/packages/modal/src/ui/components/Header.js +81 -0
- package/dist/lib.cjs/packages/modal/src/ui/components/Icon.js +73 -0
- package/dist/lib.cjs/packages/modal/src/ui/components/Image.js +51 -0
- package/dist/lib.cjs/packages/modal/src/ui/components/Loader.js +59 -0
- package/dist/lib.cjs/packages/modal/src/ui/components/Modal.js +244 -0
- package/dist/lib.cjs/packages/modal/src/ui/components/SelfCustodyViaWeb3Auth.js +30 -0
- package/dist/lib.cjs/packages/modal/src/ui/components/SocialLoginPasswordless.js +141 -0
- package/dist/lib.cjs/packages/modal/src/ui/components/SocialLogins.js +148 -0
- package/dist/lib.cjs/packages/modal/src/ui/components/WalletConnect.js +84 -0
- package/dist/lib.cjs/packages/modal/src/ui/config.js +17 -0
- package/dist/lib.cjs/packages/modal/src/ui/context/ThemeContext.js +9 -0
- package/dist/lib.cjs/packages/modal/src/ui/css/web3auth.css.js +8 -0
- package/dist/lib.cjs/packages/modal/src/ui/i18n/dutch.json.js +84 -0
- package/dist/lib.cjs/packages/modal/src/ui/i18n/english.json.js +84 -0
- package/dist/lib.cjs/packages/modal/src/ui/i18n/french.json.js +82 -0
- package/dist/lib.cjs/packages/modal/src/ui/i18n/german.json.js +84 -0
- package/dist/lib.cjs/packages/modal/src/ui/i18n/japanese.json.js +84 -0
- package/dist/lib.cjs/packages/modal/src/ui/i18n/korean.json.js +84 -0
- package/dist/lib.cjs/packages/modal/src/ui/i18n/mandarin.json.js +84 -0
- package/dist/lib.cjs/packages/modal/src/ui/i18n/portuguese.json.js +84 -0
- package/dist/lib.cjs/packages/modal/src/ui/i18n/spanish.json.js +84 -0
- package/dist/lib.cjs/packages/modal/src/ui/i18n/turkish.json.js +84 -0
- package/dist/lib.cjs/packages/modal/src/ui/interfaces.js +26 -0
- package/dist/lib.cjs/packages/modal/src/ui/localeImport.js +25 -0
- package/dist/lib.cjs/packages/modal/src/ui/loginModal.js +309 -0
- package/dist/lib.cjs/packages/modal/src/ui/utils.js +71 -0
- package/dist/lib.cjs/packages/modal/src/vue/Web3AuthProvider.js +208 -0
- package/dist/lib.cjs/packages/modal/src/vue/composables/useWeb3Auth.js +12 -0
- package/dist/lib.cjs/packages/modal/src/vue/index.js +9 -0
- package/dist/lib.esm/node_modules/style-inject/dist/style-inject.es.js +26 -0
- package/dist/lib.esm/{config.js → packages/modal/src/config.js} +12 -24
- package/dist/lib.esm/{index.js → packages/modal/src/index.js} +1 -0
- package/dist/lib.esm/packages/modal/src/modalManager.js +374 -0
- package/dist/lib.esm/packages/modal/src/react/Web3AuthProvider.js +13 -0
- package/dist/lib.esm/packages/modal/src/react/context/Web3AuthInnerContext.js +196 -0
- package/dist/lib.esm/packages/modal/src/react/hooks/useWeb3Auth.js +13 -0
- package/dist/lib.esm/packages/modal/src/react/index.js +3 -0
- package/dist/lib.esm/packages/modal/src/ui/assets/arrow-left-dark.svg.js +5 -0
- package/dist/lib.esm/packages/modal/src/ui/assets/arrow-left-light.svg.js +5 -0
- package/dist/lib.esm/packages/modal/src/ui/assets/x-dark.svg.js +5 -0
- package/dist/lib.esm/packages/modal/src/ui/assets/x-light.svg.js +5 -0
- package/dist/lib.esm/packages/modal/src/ui/components/AdapterLoader.js +106 -0
- package/dist/lib.esm/packages/modal/src/ui/components/Button/Button.js +32 -0
- package/dist/lib.esm/packages/modal/src/ui/components/Button/styles.css.js +6 -0
- package/dist/lib.esm/packages/modal/src/ui/components/ExternalWallet/ExternalWalletButton.js +42 -0
- package/dist/lib.esm/packages/modal/src/ui/components/ExternalWallet/ExternalWalletConnect.js +65 -0
- package/dist/lib.esm/packages/modal/src/ui/components/ExternalWallet/ExternalWalletDetails.js +32 -0
- package/dist/lib.esm/packages/modal/src/ui/components/ExternalWallet/ExternalWalletHeader.js +44 -0
- package/dist/lib.esm/packages/modal/src/ui/components/ExternalWallet/ExternalWalletInstall.js +165 -0
- package/dist/lib.esm/packages/modal/src/ui/components/ExternalWallets.js +271 -0
- package/dist/lib.esm/packages/modal/src/ui/components/Footer.js +18 -0
- package/dist/lib.esm/packages/modal/src/ui/components/Header.js +79 -0
- package/dist/lib.esm/packages/modal/src/ui/components/Icon.js +71 -0
- package/dist/lib.esm/packages/modal/src/ui/components/Image.js +49 -0
- package/dist/lib.esm/packages/modal/src/ui/components/Loader.js +57 -0
- package/dist/lib.esm/packages/modal/src/ui/components/Modal.js +242 -0
- package/dist/lib.esm/packages/modal/src/ui/components/SelfCustodyViaWeb3Auth.js +28 -0
- package/dist/lib.esm/packages/modal/src/ui/components/SocialLoginPasswordless.js +139 -0
- package/dist/lib.esm/packages/modal/src/ui/components/SocialLogins.js +146 -0
- package/dist/lib.esm/packages/modal/src/ui/components/WalletConnect.js +82 -0
- package/dist/lib.esm/packages/modal/src/ui/config.js +13 -0
- package/dist/lib.esm/packages/modal/src/ui/context/ThemeContext.js +7 -0
- package/dist/lib.esm/packages/modal/src/ui/css/web3auth.css.js +6 -0
- package/dist/lib.esm/packages/modal/src/ui/i18n/dutch.json.js +79 -0
- package/dist/lib.esm/packages/modal/src/ui/i18n/english.json.js +79 -0
- package/dist/lib.esm/packages/modal/src/ui/i18n/french.json.js +77 -0
- package/dist/lib.esm/packages/modal/src/ui/i18n/german.json.js +79 -0
- package/dist/lib.esm/packages/modal/src/ui/i18n/japanese.json.js +79 -0
- package/dist/lib.esm/packages/modal/src/ui/i18n/korean.json.js +79 -0
- package/dist/lib.esm/packages/modal/src/ui/i18n/mandarin.json.js +79 -0
- package/dist/lib.esm/packages/modal/src/ui/i18n/portuguese.json.js +79 -0
- package/dist/lib.esm/packages/modal/src/ui/i18n/spanish.json.js +79 -0
- package/dist/lib.esm/packages/modal/src/ui/i18n/turkish.json.js +79 -0
- package/dist/lib.esm/packages/modal/src/ui/interfaces.js +20 -0
- package/dist/lib.esm/packages/modal/src/ui/localeImport.js +23 -0
- package/dist/lib.esm/packages/modal/src/ui/loginModal.js +307 -0
- package/dist/lib.esm/packages/modal/src/ui/utils.js +65 -0
- package/dist/lib.esm/packages/modal/src/vue/Web3AuthProvider.js +206 -0
- package/dist/lib.esm/packages/modal/src/vue/composables/useWeb3Auth.js +10 -0
- package/dist/lib.esm/packages/modal/src/vue/index.js +2 -0
- package/dist/modal.cjs.js +5676 -470
- package/dist/modal.umd.min.js +1 -1
- package/dist/modal.umd.min.js.LICENSE.txt +45 -0
- package/dist/types/config.d.ts +6 -6
- package/dist/types/index.d.ts +1 -0
- package/dist/types/interface.d.ts +5 -5
- package/dist/types/modalManager.d.ts +11 -12
- package/dist/types/react/Web3AuthProvider.d.ts +3 -0
- package/dist/types/react/context/Web3AuthInnerContext.d.ts +4 -0
- package/dist/types/react/context/index.d.ts +1 -0
- package/dist/types/react/hooks/index.d.ts +1 -0
- package/dist/types/react/hooks/useWeb3Auth.d.ts +2 -0
- package/dist/types/react/index.d.ts +4 -0
- package/dist/types/react/interfaces.d.ts +18 -0
- package/dist/types/ui/components/AdapterLoader.d.ts +11 -0
- package/dist/types/ui/components/Button/Button.d.ts +16 -0
- package/dist/types/ui/components/Button/index.d.ts +1 -0
- package/dist/types/ui/components/ExternalWallet/ExternalWalletButton.d.ts +7 -0
- package/dist/types/ui/components/ExternalWallet/ExternalWalletConnect.d.ts +9 -0
- package/dist/types/ui/components/ExternalWallet/ExternalWalletDetails.d.ts +9 -0
- package/dist/types/ui/components/ExternalWallet/ExternalWalletHeader.d.ts +8 -0
- package/dist/types/ui/components/ExternalWallet/ExternalWalletInstall.d.ts +8 -0
- package/dist/types/ui/components/ExternalWallets.d.ts +17 -0
- package/dist/types/ui/components/Footer.d.ts +1 -0
- package/dist/types/ui/components/Header.d.ts +8 -0
- package/dist/types/ui/components/Icon.d.ts +9 -0
- package/dist/types/ui/components/Image.d.ts +12 -0
- package/dist/types/ui/components/Loader.d.ts +10 -0
- package/dist/types/ui/components/Modal.d.ts +16 -0
- package/dist/types/ui/components/SelfCustodyViaWeb3Auth.d.ts +1 -0
- package/dist/types/ui/components/SocialLoginPasswordless.d.ts +16 -0
- package/dist/types/ui/components/SocialLogins.d.ts +14 -0
- package/dist/types/ui/components/WalletConnect.d.ts +8 -0
- package/dist/types/ui/config.d.ts +4 -0
- package/dist/types/ui/context/ThemeContext.d.ts +3 -0
- package/dist/types/ui/helper/countryData.d.ts +7 -0
- package/dist/types/ui/i18n/index.d.ts +11 -0
- package/dist/types/ui/index.d.ts +4 -0
- package/dist/types/ui/interfaces.d.ts +102 -0
- package/dist/types/ui/localeImport.d.ts +3 -0
- package/dist/types/ui/loginModal.d.ts +27 -0
- package/dist/types/ui/utils.d.ts +12 -0
- package/dist/types/vue/Web3AuthProvider.d.ts +13 -0
- package/dist/types/vue/composables/index.d.ts +1 -0
- package/dist/types/vue/composables/useWeb3Auth.d.ts +2 -0
- package/dist/types/vue/index.d.ts +3 -0
- package/dist/types/vue/interfaces.d.ts +42 -0
- package/package.json +100 -43
- package/dist/lib.cjs/modalManager.js +0 -441
- package/dist/lib.esm/modalManager.js +0 -439
- package/dist/modal.esm.js +0 -513
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import type { AuthUserInfo, LoginParams } from "@web3auth/auth";
|
|
2
|
+
import type { CONNECTOR_STATUS_TYPE, ConnectorFn, IPlugin, IProvider, PluginFn, UserAuthInfo, WALLET_CONNECTOR_TYPE } from "@web3auth/no-modal";
|
|
3
|
+
import { Ref, ShallowRef } from "vue";
|
|
4
|
+
import type { ModalConfig } from "../interface";
|
|
5
|
+
import type { Web3Auth, Web3AuthOptions } from "../modalManager";
|
|
6
|
+
export type Web3AuthContextConfig = {
|
|
7
|
+
web3AuthOptions: Web3AuthOptions;
|
|
8
|
+
modalConfig?: Record<WALLET_CONNECTOR_TYPE, ModalConfig>;
|
|
9
|
+
hideWalletDiscovery?: boolean;
|
|
10
|
+
connectors?: ConnectorFn[];
|
|
11
|
+
plugins?: PluginFn[];
|
|
12
|
+
};
|
|
13
|
+
export interface Web3AuthProviderProps {
|
|
14
|
+
config: Web3AuthContextConfig;
|
|
15
|
+
}
|
|
16
|
+
interface IBaseWeb3AuthComposableContext {
|
|
17
|
+
isConnecting: Ref<boolean>;
|
|
18
|
+
connectError: Ref<Error | null>;
|
|
19
|
+
isConnected: Ref<boolean>;
|
|
20
|
+
provider: Ref<IProvider | null>;
|
|
21
|
+
userInfo: Ref<Partial<AuthUserInfo> | null>;
|
|
22
|
+
isMFAEnabled: Ref<boolean>;
|
|
23
|
+
isInitializing: Ref<boolean>;
|
|
24
|
+
initError: Ref<Error | null>;
|
|
25
|
+
isInitialized: Ref<boolean>;
|
|
26
|
+
status: Ref<CONNECTOR_STATUS_TYPE | null>;
|
|
27
|
+
enableMFA(params?: LoginParams): Promise<void>;
|
|
28
|
+
manageMFA(params?: LoginParams): Promise<void>;
|
|
29
|
+
logout(params?: {
|
|
30
|
+
cleanup: boolean;
|
|
31
|
+
}): Promise<void>;
|
|
32
|
+
getPlugin(pluginName: string): IPlugin | null;
|
|
33
|
+
authenticateUser(): Promise<UserAuthInfo>;
|
|
34
|
+
switchChain(params: {
|
|
35
|
+
chainId: string;
|
|
36
|
+
}): Promise<void>;
|
|
37
|
+
}
|
|
38
|
+
export interface IWeb3AuthContext extends IBaseWeb3AuthComposableContext {
|
|
39
|
+
web3Auth: ShallowRef<Web3Auth | null>;
|
|
40
|
+
connect(): Promise<IProvider | null>;
|
|
41
|
+
}
|
|
42
|
+
export {};
|
package/package.json
CHANGED
|
@@ -1,56 +1,125 @@
|
|
|
1
1
|
{
|
|
2
|
+
"name": "@web3auth/modal",
|
|
3
|
+
"version": "10.0.0-alpha.1",
|
|
4
|
+
"description": "Multi chain wallet aggregator for web3Auth",
|
|
5
|
+
"keywords": [
|
|
6
|
+
"web3Auth/ui",
|
|
7
|
+
"web3Auth",
|
|
8
|
+
"multichainWallet",
|
|
9
|
+
"blockchain",
|
|
10
|
+
"ethereum",
|
|
11
|
+
"solana"
|
|
12
|
+
],
|
|
13
|
+
"main": "dist/lib.cjs/packages/modal/src/index.js",
|
|
14
|
+
"module": "dist/lib.esm/packages/modal/src/index.js",
|
|
15
|
+
"unpkg": "dist/modal.umd.min.js",
|
|
16
|
+
"jsdelivr": "dist/modal.umd.min.js",
|
|
17
|
+
"types": "dist/types/index.d.ts",
|
|
2
18
|
"author": "Torus Labs",
|
|
3
19
|
"bugs": {
|
|
4
20
|
"url": "https://github.com/Web3Auth/Web3Auth/issues"
|
|
5
21
|
},
|
|
6
|
-
"
|
|
7
|
-
"
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
"
|
|
11
|
-
"
|
|
12
|
-
"
|
|
22
|
+
"files": [
|
|
23
|
+
"dist"
|
|
24
|
+
],
|
|
25
|
+
"scripts": {
|
|
26
|
+
"test": "mocha --config ../../.mocharc.json test/**.ts",
|
|
27
|
+
"test-debugger": "mocha --config ../../.mocharc.json --inspect-brk test/**.ts",
|
|
28
|
+
"dev": "torus-scripts start",
|
|
29
|
+
"build": "torus-scripts build",
|
|
30
|
+
"lint": "eslint --fix 'src/**/*.ts'",
|
|
31
|
+
"prepack": "npm run build",
|
|
32
|
+
"pre-commit": "lint-staged --cwd ."
|
|
33
|
+
},
|
|
34
|
+
"peerDependenciesMeta": {
|
|
35
|
+
"@coinbase/wallet-sdk": {
|
|
36
|
+
"optional": true
|
|
37
|
+
},
|
|
38
|
+
"vue": {
|
|
39
|
+
"optional": true
|
|
40
|
+
}
|
|
41
|
+
},
|
|
42
|
+
"peerDependencies": {
|
|
43
|
+
"@babel/runtime": "^7.x",
|
|
44
|
+
"react": "^18.x",
|
|
45
|
+
"react-dom": "^18.x",
|
|
46
|
+
"vue": "^3.x"
|
|
13
47
|
},
|
|
14
48
|
"devDependencies": {
|
|
49
|
+
"@babel/preset-react": "^7.26.3",
|
|
50
|
+
"@mertasan/tailwindcss-variables": "^2.7.0",
|
|
51
|
+
"@rollup/plugin-json": "^6.1.0",
|
|
52
|
+
"@rollup/plugin-url": "^8.0.2",
|
|
53
|
+
"@svgr/rollup": "^8.1.0",
|
|
15
54
|
"@svgr/webpack": "^8.1.0",
|
|
55
|
+
"@toruslabs/eslint-config-react": "^3.4.4",
|
|
16
56
|
"@toruslabs/isomorphic-style-loader": "^5.3.3",
|
|
17
|
-
"@
|
|
18
|
-
"@
|
|
19
|
-
"@
|
|
57
|
+
"@toruslabs/vue-components": "^7.9.0",
|
|
58
|
+
"@types/react": "^18.3.12",
|
|
59
|
+
"@types/react-dom": "^18.3.1",
|
|
60
|
+
"autoprefixer": "^10.4.20",
|
|
20
61
|
"css-loader": "^7.1.2",
|
|
62
|
+
"live-server": "^1.2.2",
|
|
63
|
+
"postcss": "^8.4.49",
|
|
64
|
+
"postcss-loader": "^8.1.1",
|
|
21
65
|
"postcss-prefix-selector": "^2.1.0",
|
|
66
|
+
"react": "^18.3.1",
|
|
67
|
+
"react-dom": "^18.3.1",
|
|
68
|
+
"rollup-plugin-postcss": "^4.0.2",
|
|
22
69
|
"style-loader": "^4.0.0",
|
|
23
|
-
"
|
|
70
|
+
"tailwindcss": "^3.4.17",
|
|
71
|
+
"url-loader": "^4.1.1",
|
|
72
|
+
"vue": "^3.5.13"
|
|
73
|
+
},
|
|
74
|
+
"dependencies": {
|
|
75
|
+
"@toruslabs/http-helpers": "^7.0.0",
|
|
76
|
+
"@web3auth/auth": "^9.6.4",
|
|
77
|
+
"@web3auth/no-modal": "^10.0.0-alpha.1",
|
|
78
|
+
"bowser": "^2.11.0",
|
|
79
|
+
"classnames": "^2.5.1",
|
|
80
|
+
"copy-to-clipboard": "^3.3.3",
|
|
81
|
+
"deepmerge": "^4.3.1",
|
|
82
|
+
"i18next": "^23.16.8",
|
|
83
|
+
"react-i18next": "^15.2.0",
|
|
84
|
+
"react-qrcode-logo": "^3.0.0"
|
|
85
|
+
},
|
|
86
|
+
"exports": {
|
|
87
|
+
".": {
|
|
88
|
+
"import": "./dist/lib.esm/packages/modal/src/index.js",
|
|
89
|
+
"require": "./dist/lib.cjs/packages/modal/src/index.js",
|
|
90
|
+
"types": "./dist/types/index.d.ts"
|
|
91
|
+
},
|
|
92
|
+
"./react": {
|
|
93
|
+
"import": "./dist/lib.esm/packages/modal/src/react/index.js",
|
|
94
|
+
"require": "./dist/lib.cjs/packages/modal/src/react/index.js",
|
|
95
|
+
"types": "./dist/types/react/index.d.ts"
|
|
96
|
+
},
|
|
97
|
+
"./vue": {
|
|
98
|
+
"import": "./dist/lib.esm/packages/modal/src/vue/index.js",
|
|
99
|
+
"require": "./dist/lib.cjs/packages/modal/src/vue/index.js",
|
|
100
|
+
"types": "./dist/types/vue/index.d.ts"
|
|
101
|
+
}
|
|
102
|
+
},
|
|
103
|
+
"typesVersions": {
|
|
104
|
+
"*": {
|
|
105
|
+
"react": [
|
|
106
|
+
"./dist/types/react/index.d.ts"
|
|
107
|
+
],
|
|
108
|
+
"vue": [
|
|
109
|
+
"./dist/types/vue/index.d.ts"
|
|
110
|
+
]
|
|
111
|
+
}
|
|
24
112
|
},
|
|
25
113
|
"engines": {
|
|
26
114
|
"node": ">=18.x",
|
|
27
115
|
"npm": ">=9.x"
|
|
28
116
|
},
|
|
29
|
-
"files": [
|
|
30
|
-
"dist"
|
|
31
|
-
],
|
|
32
|
-
"homepage": "https://github.com/Web3Auth/Web3Auth#readme",
|
|
33
|
-
"jsdelivr": "dist/modal.umd.min.js",
|
|
34
|
-
"keywords": [],
|
|
35
|
-
"license": "ISC",
|
|
36
117
|
"lint-staged": {
|
|
37
118
|
"!(*d).ts": [
|
|
38
119
|
"eslint --cache --fix",
|
|
39
120
|
"prettier --write"
|
|
40
121
|
]
|
|
41
122
|
},
|
|
42
|
-
"main": "dist/lib.cjs/index.js",
|
|
43
|
-
"module": "dist/lib.esm/index.js",
|
|
44
|
-
"name": "@web3auth/modal",
|
|
45
|
-
"peerDependencies": {
|
|
46
|
-
"@babel/runtime": "^7.x",
|
|
47
|
-
"@web3auth/wallet-connect-v2-adapter": "^9.x"
|
|
48
|
-
},
|
|
49
|
-
"peerDependenciesMeta": {
|
|
50
|
-
"@web3auth/wallet-connect-v2-adapter": {
|
|
51
|
-
"optional": true
|
|
52
|
-
}
|
|
53
|
-
},
|
|
54
123
|
"publishConfig": {
|
|
55
124
|
"access": "public"
|
|
56
125
|
},
|
|
@@ -58,17 +127,5 @@
|
|
|
58
127
|
"type": "git",
|
|
59
128
|
"url": "git+https://github.com/Web3Auth/Web3Auth.git"
|
|
60
129
|
},
|
|
61
|
-
"
|
|
62
|
-
"build": "torus-scripts build",
|
|
63
|
-
"dev": "torus-scripts start",
|
|
64
|
-
"lint": "eslint --fix 'src/**/*.ts'",
|
|
65
|
-
"pre-commit": "lint-staged --cwd .",
|
|
66
|
-
"prepack": "npm run build",
|
|
67
|
-
"test": "mocha --config ../../.mocharc.json test/**.ts",
|
|
68
|
-
"test-debugger": "mocha --config ../../.mocharc.json --inspect-brk test/**.ts"
|
|
69
|
-
},
|
|
70
|
-
"types": "dist/types/index.d.ts",
|
|
71
|
-
"unpkg": "dist/modal.umd.min.js",
|
|
72
|
-
"version": "9.7.0",
|
|
73
|
-
"gitHead": "dedcfa4faf7bcc60e5fa3e1b87be2c7e48c652bc"
|
|
130
|
+
"gitHead": "d22af091d1b195115c5c570be82c64ee92353245"
|
|
74
131
|
}
|
|
@@ -1,441 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
var _objectSpread = require('@babel/runtime/helpers/objectSpread2');
|
|
4
|
-
var _defineProperty = require('@babel/runtime/helpers/defineProperty');
|
|
5
|
-
var authAdapter = require('@web3auth/auth-adapter');
|
|
6
|
-
var base = require('@web3auth/base');
|
|
7
|
-
var baseProvider = require('@web3auth/base-provider');
|
|
8
|
-
var noModal = require('@web3auth/no-modal');
|
|
9
|
-
var ui = require('@web3auth/ui');
|
|
10
|
-
var deepmerge = require('deepmerge');
|
|
11
|
-
var config = require('./config.js');
|
|
12
|
-
|
|
13
|
-
class Web3Auth extends noModal.Web3AuthNoModal {
|
|
14
|
-
constructor(options) {
|
|
15
|
-
super(options);
|
|
16
|
-
_defineProperty(this, "loginModal", void 0);
|
|
17
|
-
_defineProperty(this, "options", void 0);
|
|
18
|
-
_defineProperty(this, "modalConfig", base.cloneDeep(config.defaultOtherModalConfig));
|
|
19
|
-
this.options = _objectSpread({}, options);
|
|
20
|
-
if (!this.options.uiConfig) this.options.uiConfig = {};
|
|
21
|
-
if (!this.coreOptions.privateKeyProvider) throw base.WalletInitializationError.invalidParams("privateKeyProvider is required");
|
|
22
|
-
}
|
|
23
|
-
setModalConfig(modalConfig) {
|
|
24
|
-
super.checkInitRequirements();
|
|
25
|
-
this.modalConfig = modalConfig;
|
|
26
|
-
}
|
|
27
|
-
async initModal(params) {
|
|
28
|
-
var _params;
|
|
29
|
-
super.checkInitRequirements();
|
|
30
|
-
let projectConfig;
|
|
31
|
-
try {
|
|
32
|
-
var _this$options$account;
|
|
33
|
-
projectConfig = await base.fetchProjectConfig(this.options.clientId, this.options.web3AuthNetwork, (_this$options$account = this.options.accountAbstractionProvider) === null || _this$options$account === void 0 ? void 0 : _this$options$account.config.smartAccountInit.name);
|
|
34
|
-
} catch (e) {
|
|
35
|
-
base.log.error("Failed to fetch project configurations", e);
|
|
36
|
-
throw base.WalletInitializationError.notReady("failed to fetch project configurations", e);
|
|
37
|
-
}
|
|
38
|
-
const {
|
|
39
|
-
whitelabel
|
|
40
|
-
} = projectConfig;
|
|
41
|
-
this.options.uiConfig = deepmerge(base.cloneDeep(whitelabel || {}), this.options.uiConfig || {});
|
|
42
|
-
if (!this.options.uiConfig.defaultLanguage) this.options.uiConfig.defaultLanguage = ui.getUserLanguage(this.options.uiConfig.defaultLanguage);
|
|
43
|
-
if (!this.options.uiConfig.mode) this.options.uiConfig.mode = "light";
|
|
44
|
-
let walletRegistry = {
|
|
45
|
-
others: {},
|
|
46
|
-
default: {}
|
|
47
|
-
};
|
|
48
|
-
if (!((_params = params) !== null && _params !== void 0 && _params.hideWalletDiscovery)) {
|
|
49
|
-
try {
|
|
50
|
-
walletRegistry = await base.fetchWalletRegistry(config.walletRegistryUrl);
|
|
51
|
-
} catch (e) {
|
|
52
|
-
base.log.error("Failed to fetch wallet registry", e);
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
this.loginModal = new ui.LoginModal(_objectSpread(_objectSpread({}, this.options.uiConfig), {}, {
|
|
56
|
-
adapterListener: this,
|
|
57
|
-
chainNamespace: this.options.chainConfig.chainNamespace,
|
|
58
|
-
walletRegistry
|
|
59
|
-
}));
|
|
60
|
-
this.subscribeToLoginModalEvents();
|
|
61
|
-
const {
|
|
62
|
-
sms_otp_enabled: smsOtpEnabled,
|
|
63
|
-
whitelist,
|
|
64
|
-
key_export_enabled: keyExportEnabled
|
|
65
|
-
} = projectConfig;
|
|
66
|
-
if (smsOtpEnabled !== undefined) {
|
|
67
|
-
var _params2, _params$modalConfig$W;
|
|
68
|
-
const adapterConfig = {
|
|
69
|
-
[base.WALLET_ADAPTERS.AUTH]: {
|
|
70
|
-
label: base.WALLET_ADAPTERS.AUTH,
|
|
71
|
-
loginMethods: {
|
|
72
|
-
[authAdapter.LOGIN_PROVIDER.SMS_PASSWORDLESS]: {
|
|
73
|
-
name: authAdapter.LOGIN_PROVIDER.SMS_PASSWORDLESS,
|
|
74
|
-
showOnModal: smsOtpEnabled,
|
|
75
|
-
showOnDesktop: smsOtpEnabled,
|
|
76
|
-
showOnMobile: smsOtpEnabled
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
};
|
|
81
|
-
if (!((_params2 = params) !== null && _params2 !== void 0 && _params2.modalConfig)) params = {
|
|
82
|
-
modalConfig: {}
|
|
83
|
-
};
|
|
84
|
-
const localSmsOtpEnabled = (_params$modalConfig$W = params.modalConfig[base.WALLET_ADAPTERS.AUTH]) === null || _params$modalConfig$W === void 0 || (_params$modalConfig$W = _params$modalConfig$W.loginMethods) === null || _params$modalConfig$W === void 0 || (_params$modalConfig$W = _params$modalConfig$W[authAdapter.LOGIN_PROVIDER.SMS_PASSWORDLESS]) === null || _params$modalConfig$W === void 0 ? void 0 : _params$modalConfig$W.showOnModal;
|
|
85
|
-
if (localSmsOtpEnabled === true && smsOtpEnabled === false) {
|
|
86
|
-
throw base.WalletInitializationError.invalidParams("must enable sms otp on dashboard in order to utilise it");
|
|
87
|
-
}
|
|
88
|
-
params.modalConfig = deepmerge(adapterConfig, base.cloneDeep(params.modalConfig));
|
|
89
|
-
}
|
|
90
|
-
await this.loginModal.initModal();
|
|
91
|
-
const providedChainConfig = this.options.chainConfig;
|
|
92
|
-
// merge default adapters with the custom configured adapters.
|
|
93
|
-
const allAdapters = [...new Set([...Object.keys(this.modalConfig.adapters || {}), ...Object.keys(this.walletAdapters)])];
|
|
94
|
-
const adapterConfigurationPromises = allAdapters.map(async adapterName => {
|
|
95
|
-
var _this$modalConfig$ada, _params3, _this$modalConfig$ada2, _this$modalConfig$ada3;
|
|
96
|
-
// start with the default config of adapter.
|
|
97
|
-
let adapterConfig = ((_this$modalConfig$ada = this.modalConfig.adapters) === null || _this$modalConfig$ada === void 0 ? void 0 : _this$modalConfig$ada[adapterName]) || {
|
|
98
|
-
label: base.ADAPTER_NAMES[adapterName] || adapterName.split("-").map(ui.capitalizeFirstLetter).join(" "),
|
|
99
|
-
showOnModal: true,
|
|
100
|
-
showOnMobile: true,
|
|
101
|
-
showOnDesktop: true
|
|
102
|
-
};
|
|
103
|
-
|
|
104
|
-
// override the default config of adapter if some config is being provided by the user.
|
|
105
|
-
if ((_params3 = params) !== null && _params3 !== void 0 && (_params3 = _params3.modalConfig) !== null && _params3 !== void 0 && _params3[adapterName]) {
|
|
106
|
-
adapterConfig = _objectSpread(_objectSpread({}, adapterConfig), params.modalConfig[adapterName]);
|
|
107
|
-
}
|
|
108
|
-
this.modalConfig.adapters[adapterName] = adapterConfig;
|
|
109
|
-
|
|
110
|
-
// check if adapter is configured/added by user and exist in walletAdapters map.
|
|
111
|
-
const adapter = this.walletAdapters[adapterName];
|
|
112
|
-
base.log.debug("adapter config", adapterName, (_this$modalConfig$ada2 = this.modalConfig.adapters) === null || _this$modalConfig$ada2 === void 0 ? void 0 : _this$modalConfig$ada2[adapterName].showOnModal, adapter);
|
|
113
|
-
|
|
114
|
-
// if adapter is not custom configured then check if it is available in default adapters.
|
|
115
|
-
// and if adapter is not hidden by user
|
|
116
|
-
if (!adapter && (_this$modalConfig$ada3 = this.modalConfig.adapters) !== null && _this$modalConfig$ada3 !== void 0 && _this$modalConfig$ada3[adapterName].showOnModal) {
|
|
117
|
-
// Adapters to be shown on modal should be pre-configured.
|
|
118
|
-
if (adapterName === base.WALLET_ADAPTERS.AUTH) {
|
|
119
|
-
var _this$coreOptions$cha;
|
|
120
|
-
const defaultOptions = authAdapter.getAuthDefaultOptions();
|
|
121
|
-
const {
|
|
122
|
-
clientId,
|
|
123
|
-
useCoreKitKey,
|
|
124
|
-
chainConfig,
|
|
125
|
-
web3AuthNetwork,
|
|
126
|
-
sessionTime,
|
|
127
|
-
privateKeyProvider
|
|
128
|
-
} = this.coreOptions;
|
|
129
|
-
const finalChainConfig = _objectSpread(_objectSpread({}, base.getChainConfig(providedChainConfig.chainNamespace, (_this$coreOptions$cha = this.coreOptions.chainConfig) === null || _this$coreOptions$cha === void 0 ? void 0 : _this$coreOptions$cha.chainId, clientId)), chainConfig);
|
|
130
|
-
if (!privateKeyProvider) {
|
|
131
|
-
throw base.WalletInitializationError.invalidParams("privateKeyProvider is required");
|
|
132
|
-
}
|
|
133
|
-
const finalAuthAdapterSettings = _objectSpread(_objectSpread({}, defaultOptions.adapterSettings), {}, {
|
|
134
|
-
clientId,
|
|
135
|
-
network: web3AuthNetwork,
|
|
136
|
-
whiteLabel: this.options.uiConfig
|
|
137
|
-
});
|
|
138
|
-
if (smsOtpEnabled !== undefined) {
|
|
139
|
-
finalAuthAdapterSettings.loginConfig = {
|
|
140
|
-
[authAdapter.LOGIN_PROVIDER.SMS_PASSWORDLESS]: {
|
|
141
|
-
showOnModal: smsOtpEnabled,
|
|
142
|
-
showOnDesktop: smsOtpEnabled,
|
|
143
|
-
showOnMobile: smsOtpEnabled,
|
|
144
|
-
showOnSocialBackupFactor: smsOtpEnabled
|
|
145
|
-
}
|
|
146
|
-
};
|
|
147
|
-
}
|
|
148
|
-
if (whitelist) {
|
|
149
|
-
finalAuthAdapterSettings.originData = whitelist.signed_urls;
|
|
150
|
-
}
|
|
151
|
-
if (this.options.uiConfig.uxMode) {
|
|
152
|
-
finalAuthAdapterSettings.uxMode = this.options.uiConfig.uxMode;
|
|
153
|
-
}
|
|
154
|
-
const authAdapter$1 = new authAdapter.AuthAdapter(_objectSpread(_objectSpread({}, defaultOptions), {}, {
|
|
155
|
-
clientId,
|
|
156
|
-
useCoreKitKey,
|
|
157
|
-
chainConfig: _objectSpread({}, finalChainConfig),
|
|
158
|
-
adapterSettings: finalAuthAdapterSettings,
|
|
159
|
-
sessionTime,
|
|
160
|
-
web3AuthNetwork,
|
|
161
|
-
privateKeyProvider
|
|
162
|
-
}));
|
|
163
|
-
this.walletAdapters[adapterName] = authAdapter$1;
|
|
164
|
-
return adapterName;
|
|
165
|
-
}
|
|
166
|
-
throw base.WalletInitializationError.invalidParams(`Adapter ${adapterName} is not configured`);
|
|
167
|
-
} else if ((adapter === null || adapter === void 0 ? void 0 : adapter.type) === base.ADAPTER_CATEGORY.IN_APP || (adapter === null || adapter === void 0 ? void 0 : adapter.type) === base.ADAPTER_CATEGORY.EXTERNAL || adapterName === this.cachedAdapter) {
|
|
168
|
-
var _this$modalConfig$ada4;
|
|
169
|
-
if (!((_this$modalConfig$ada4 = this.modalConfig.adapters) !== null && _this$modalConfig$ada4 !== void 0 && _this$modalConfig$ada4[adapterName].showOnModal)) return;
|
|
170
|
-
// add client id to adapter, same web3auth client id can be used in adapter.
|
|
171
|
-
// this id is being overridden if user is also passing client id in adapter's constructor.
|
|
172
|
-
this.walletAdapters[adapterName].setAdapterSettings({
|
|
173
|
-
clientId: this.options.clientId,
|
|
174
|
-
sessionTime: this.options.sessionTime,
|
|
175
|
-
web3AuthNetwork: this.options.web3AuthNetwork,
|
|
176
|
-
useCoreKitKey: this.coreOptions.useCoreKitKey
|
|
177
|
-
});
|
|
178
|
-
|
|
179
|
-
// if adapter doesn't have any chainConfig then we will set the chainConfig based of passed chainNamespace
|
|
180
|
-
// and chainNamespace.
|
|
181
|
-
if (!adapter.chainConfigProxy) {
|
|
182
|
-
var _this$coreOptions$cha2;
|
|
183
|
-
const chainConfig = _objectSpread(_objectSpread({}, base.getChainConfig(providedChainConfig.chainNamespace, (_this$coreOptions$cha2 = this.coreOptions.chainConfig) === null || _this$coreOptions$cha2 === void 0 ? void 0 : _this$coreOptions$cha2.chainId, this.coreOptions.clientId)), this.coreOptions.chainConfig);
|
|
184
|
-
this.walletAdapters[adapterName].setAdapterSettings({
|
|
185
|
-
chainConfig
|
|
186
|
-
});
|
|
187
|
-
}
|
|
188
|
-
if (adapterName === base.WALLET_ADAPTERS.AUTH) {
|
|
189
|
-
var _this$options$uiConfi;
|
|
190
|
-
const authAdapter$1 = this.walletAdapters[adapterName];
|
|
191
|
-
if (this.coreOptions.privateKeyProvider) {
|
|
192
|
-
if (authAdapter$1.currentChainNamespace !== this.coreOptions.privateKeyProvider.currentChainConfig.chainNamespace) {
|
|
193
|
-
throw base.WalletInitializationError.incompatibleChainNameSpace("private key provider is not compatible with provided chainNamespace for auth adapter");
|
|
194
|
-
}
|
|
195
|
-
authAdapter$1.setAdapterSettings({
|
|
196
|
-
privateKeyProvider: this.coreOptions.privateKeyProvider
|
|
197
|
-
});
|
|
198
|
-
}
|
|
199
|
-
if (smsOtpEnabled !== undefined) {
|
|
200
|
-
authAdapter$1.setAdapterSettings({
|
|
201
|
-
loginConfig: {
|
|
202
|
-
[authAdapter.LOGIN_PROVIDER.SMS_PASSWORDLESS]: {
|
|
203
|
-
showOnModal: smsOtpEnabled,
|
|
204
|
-
showOnDesktop: smsOtpEnabled,
|
|
205
|
-
showOnMobile: smsOtpEnabled,
|
|
206
|
-
showOnSocialBackupFactor: smsOtpEnabled
|
|
207
|
-
}
|
|
208
|
-
}
|
|
209
|
-
});
|
|
210
|
-
}
|
|
211
|
-
if (whitelist) {
|
|
212
|
-
authAdapter$1.setAdapterSettings({
|
|
213
|
-
originData: whitelist.signed_urls
|
|
214
|
-
});
|
|
215
|
-
}
|
|
216
|
-
if ((_this$options$uiConfi = this.options.uiConfig) !== null && _this$options$uiConfi !== void 0 && _this$options$uiConfi.uxMode) {
|
|
217
|
-
authAdapter$1.setAdapterSettings({
|
|
218
|
-
uxMode: this.options.uiConfig.uxMode
|
|
219
|
-
});
|
|
220
|
-
}
|
|
221
|
-
authAdapter$1.setAdapterSettings({
|
|
222
|
-
whiteLabel: this.options.uiConfig
|
|
223
|
-
});
|
|
224
|
-
if (!authAdapter$1.privateKeyProvider) {
|
|
225
|
-
throw base.WalletInitializationError.invalidParams("privateKeyProvider is required for auth adapter");
|
|
226
|
-
}
|
|
227
|
-
} else if (adapterName === base.WALLET_ADAPTERS.WALLET_CONNECT_V2) {
|
|
228
|
-
const walletConnectAdapter = this.walletAdapters[adapterName];
|
|
229
|
-
const {
|
|
230
|
-
wallet_connect_enabled: walletConnectEnabled,
|
|
231
|
-
wallet_connect_project_id: walletConnectProjectId
|
|
232
|
-
} = projectConfig;
|
|
233
|
-
if (walletConnectEnabled === false) {
|
|
234
|
-
var _this$modalConfig$ada5, _this$modalConfig$ada6, _this$modalConfig$ada7;
|
|
235
|
-
// override user specified config by hiding wallet connect
|
|
236
|
-
this.modalConfig.adapters = _objectSpread(_objectSpread({}, (_this$modalConfig$ada5 = this.modalConfig.adapters) !== null && _this$modalConfig$ada5 !== void 0 ? _this$modalConfig$ada5 : {}), {}, {
|
|
237
|
-
[base.WALLET_ADAPTERS.WALLET_CONNECT_V2]: _objectSpread(_objectSpread({}, (_this$modalConfig$ada6 = (_this$modalConfig$ada7 = this.modalConfig.adapters) === null || _this$modalConfig$ada7 === void 0 ? void 0 : _this$modalConfig$ada7[base.WALLET_ADAPTERS.WALLET_CONNECT_V2]) !== null && _this$modalConfig$ada6 !== void 0 ? _this$modalConfig$ada6 : {}), {}, {
|
|
238
|
-
showOnModal: false
|
|
239
|
-
})
|
|
240
|
-
});
|
|
241
|
-
this.modalConfig.adapters[base.WALLET_ADAPTERS.WALLET_CONNECT_V2].showOnModal = false;
|
|
242
|
-
} else {
|
|
243
|
-
var _walletConnectAdapter;
|
|
244
|
-
if (!(walletConnectAdapter !== null && walletConnectAdapter !== void 0 && (_walletConnectAdapter = walletConnectAdapter.adapterOptions) !== null && _walletConnectAdapter !== void 0 && (_walletConnectAdapter = _walletConnectAdapter.adapterSettings) !== null && _walletConnectAdapter !== void 0 && (_walletConnectAdapter = _walletConnectAdapter.walletConnectInitOptions) !== null && _walletConnectAdapter !== void 0 && _walletConnectAdapter.projectId) && !walletConnectProjectId) throw base.WalletInitializationError.invalidParams("Invalid wallet connect project id. Please configure it on the dashboard");
|
|
245
|
-
if (walletConnectProjectId) {
|
|
246
|
-
walletConnectAdapter.setAdapterSettings({
|
|
247
|
-
adapterSettings: {
|
|
248
|
-
walletConnectInitOptions: {
|
|
249
|
-
projectId: walletConnectProjectId
|
|
250
|
-
}
|
|
251
|
-
}
|
|
252
|
-
});
|
|
253
|
-
}
|
|
254
|
-
}
|
|
255
|
-
}
|
|
256
|
-
return adapterName;
|
|
257
|
-
}
|
|
258
|
-
});
|
|
259
|
-
const adapterNames = await Promise.all(adapterConfigurationPromises);
|
|
260
|
-
const hasInAppWallets = Object.values(this.walletAdapters).some(adapter => {
|
|
261
|
-
var _this$modalConfig$ada8, _this$modalConfig$ada9, _adapter$name;
|
|
262
|
-
if (adapter.type !== base.ADAPTER_CATEGORY.IN_APP) return false;
|
|
263
|
-
if (((_this$modalConfig$ada8 = this.modalConfig.adapters) === null || _this$modalConfig$ada8 === void 0 || (_this$modalConfig$ada8 = _this$modalConfig$ada8[adapter.name]) === null || _this$modalConfig$ada8 === void 0 ? void 0 : _this$modalConfig$ada8.showOnModal) !== true) return false;
|
|
264
|
-
if (!((_this$modalConfig$ada9 = this.modalConfig.adapters) !== null && _this$modalConfig$ada9 !== void 0 && (_this$modalConfig$ada9 = _this$modalConfig$ada9[adapter.name]) !== null && _this$modalConfig$ada9 !== void 0 && _this$modalConfig$ada9.loginMethods)) return true;
|
|
265
|
-
const mergedLoginMethods = ui.getAdapterSocialLogins(adapter.name, (_adapter$name = this.modalConfig.adapters[adapter.name]) === null || _adapter$name === void 0 ? void 0 : _adapter$name.loginMethods);
|
|
266
|
-
if (Object.values(mergedLoginMethods).some(method => method.showOnModal)) return true;
|
|
267
|
-
return false;
|
|
268
|
-
});
|
|
269
|
-
base.log.debug(hasInAppWallets, this.walletAdapters, adapterNames, "hasInAppWallets");
|
|
270
|
-
|
|
271
|
-
// Now, initialize the adapters.
|
|
272
|
-
const initPromises = adapterNames.map(async adapterName => {
|
|
273
|
-
if (!adapterName) return;
|
|
274
|
-
try {
|
|
275
|
-
const adapter = this.walletAdapters[adapterName];
|
|
276
|
-
// only initialize a external adapter here if it is a cached adapter.
|
|
277
|
-
if (this.cachedAdapter !== adapterName && adapter.type === base.ADAPTER_CATEGORY.EXTERNAL) {
|
|
278
|
-
return;
|
|
279
|
-
}
|
|
280
|
-
// in-app wallets or cached wallet (being connected or already connected) are initialized first.
|
|
281
|
-
// if adapter is configured then only initialize in app or cached adapter.
|
|
282
|
-
// external wallets are initialized on INIT_EXTERNAL_WALLET event.
|
|
283
|
-
this.subscribeToAdapterEvents(adapter);
|
|
284
|
-
if (adapter.status === base.ADAPTER_STATUS.NOT_READY) await adapter.init({
|
|
285
|
-
autoConnect: this.cachedAdapter === adapterName
|
|
286
|
-
});
|
|
287
|
-
// note: not adding cachedWallet to modal if it is external wallet.
|
|
288
|
-
// adding it later if no in-app wallets are available.
|
|
289
|
-
if (adapter.type === base.ADAPTER_CATEGORY.IN_APP) {
|
|
290
|
-
this.initializeInAppWallet(adapterName);
|
|
291
|
-
}
|
|
292
|
-
} catch (error) {
|
|
293
|
-
base.log.error(error, "error while initializing adapter ", adapterName);
|
|
294
|
-
}
|
|
295
|
-
});
|
|
296
|
-
this.commonJRPCProvider = await baseProvider.CommonJRPCProvider.getProviderInstance({
|
|
297
|
-
chainConfig: this.coreOptions.chainConfig
|
|
298
|
-
});
|
|
299
|
-
if (typeof keyExportEnabled === "boolean") {
|
|
300
|
-
this.coreOptions.privateKeyProvider.setKeyExportFlag(keyExportEnabled);
|
|
301
|
-
// dont know if we need to do this.
|
|
302
|
-
this.commonJRPCProvider.setKeyExportFlag(keyExportEnabled);
|
|
303
|
-
}
|
|
304
|
-
await Promise.all(initPromises);
|
|
305
|
-
if (this.status === base.ADAPTER_STATUS.NOT_READY) {
|
|
306
|
-
this.status = base.ADAPTER_STATUS.READY;
|
|
307
|
-
this.emit(base.ADAPTER_EVENTS.READY);
|
|
308
|
-
}
|
|
309
|
-
const hasExternalWallets = allAdapters.some(adapterName => {
|
|
310
|
-
var _params4, _this$walletAdapters$, _this$modalConfig$ada10;
|
|
311
|
-
// if wallet connect adapter is available but hideWalletDiscovery is true then don't consider it as external wallet
|
|
312
|
-
if (adapterName === base.WALLET_ADAPTERS.WALLET_CONNECT_V2 && (_params4 = params) !== null && _params4 !== void 0 && _params4.hideWalletDiscovery) return false;
|
|
313
|
-
return ((_this$walletAdapters$ = this.walletAdapters[adapterName]) === null || _this$walletAdapters$ === void 0 ? void 0 : _this$walletAdapters$.type) === base.ADAPTER_CATEGORY.EXTERNAL && ((_this$modalConfig$ada10 = this.modalConfig.adapters) === null || _this$modalConfig$ada10 === void 0 ? void 0 : _this$modalConfig$ada10[adapterName].showOnModal);
|
|
314
|
-
});
|
|
315
|
-
if (hasExternalWallets) {
|
|
316
|
-
this.loginModal.initExternalWalletContainer();
|
|
317
|
-
}
|
|
318
|
-
|
|
319
|
-
// variable to check if we have any in app wallets
|
|
320
|
-
// currently all default in app and external wallets can be hidden or shown based on config.
|
|
321
|
-
if (!hasInAppWallets && hasExternalWallets) {
|
|
322
|
-
// if no in app wallet is available then initialize external wallets in modal
|
|
323
|
-
await this.initExternalWalletAdapters(false, {
|
|
324
|
-
showExternalWalletsOnly: true
|
|
325
|
-
});
|
|
326
|
-
}
|
|
327
|
-
}
|
|
328
|
-
async connect() {
|
|
329
|
-
if (!this.loginModal) throw base.WalletInitializationError.notReady("Login modal is not initialized");
|
|
330
|
-
// if already connected return provider
|
|
331
|
-
if (this.connectedAdapterName && this.status === base.ADAPTER_STATUS.CONNECTED && this.provider) return this.provider;
|
|
332
|
-
this.loginModal.open();
|
|
333
|
-
return new Promise((resolve, reject) => {
|
|
334
|
-
this.once(base.ADAPTER_EVENTS.CONNECTED, () => {
|
|
335
|
-
return resolve(this.provider);
|
|
336
|
-
});
|
|
337
|
-
this.once(base.ADAPTER_EVENTS.ERRORED, err => {
|
|
338
|
-
return reject(err);
|
|
339
|
-
});
|
|
340
|
-
this.once(ui.LOGIN_MODAL_EVENTS.MODAL_VISIBILITY, visibility => {
|
|
341
|
-
// modal is closed but user is not connected to any wallet.
|
|
342
|
-
if (!visibility && this.status !== base.ADAPTER_STATUS.CONNECTED) {
|
|
343
|
-
return reject(new Error("User closed the modal"));
|
|
344
|
-
}
|
|
345
|
-
});
|
|
346
|
-
});
|
|
347
|
-
}
|
|
348
|
-
async initExternalWalletAdapters(externalWalletsInitialized, options) {
|
|
349
|
-
if (externalWalletsInitialized) return;
|
|
350
|
-
const adaptersConfig = {};
|
|
351
|
-
// we do it like this because we don't want one slow adapter to delay the load of the entire external wallet section.
|
|
352
|
-
Object.keys(this.walletAdapters).forEach(async adapterName => {
|
|
353
|
-
const adapter = this.walletAdapters[adapterName];
|
|
354
|
-
if ((adapter === null || adapter === void 0 ? void 0 : adapter.type) === base.ADAPTER_CATEGORY.EXTERNAL) {
|
|
355
|
-
base.log.debug("init external wallet", this.cachedAdapter, adapterName, adapter.status);
|
|
356
|
-
this.subscribeToAdapterEvents(adapter);
|
|
357
|
-
// we are not initializing cached adapter here as it is already being initialized in initModal before.
|
|
358
|
-
if (this.cachedAdapter === adapterName) {
|
|
359
|
-
return;
|
|
360
|
-
}
|
|
361
|
-
if (adapter.status === base.ADAPTER_STATUS.NOT_READY) {
|
|
362
|
-
await adapter.init({
|
|
363
|
-
autoConnect: this.cachedAdapter === adapterName
|
|
364
|
-
}).then(() => {
|
|
365
|
-
const adapterModalConfig = this.modalConfig.adapters[adapterName];
|
|
366
|
-
adaptersConfig[adapterName] = _objectSpread(_objectSpread({}, adapterModalConfig), {}, {
|
|
367
|
-
isInjected: adapter.isInjected
|
|
368
|
-
});
|
|
369
|
-
this.loginModal.addWalletLogins(adaptersConfig, {
|
|
370
|
-
showExternalWalletsOnly: !!(options !== null && options !== void 0 && options.showExternalWalletsOnly)
|
|
371
|
-
});
|
|
372
|
-
return undefined;
|
|
373
|
-
}).catch(error => base.log.error(error, "error while initializing adapter", adapterName));
|
|
374
|
-
} else if (adapter.status === base.ADAPTER_STATUS.READY || adapter.status === base.ADAPTER_STATUS.CONNECTING) {
|
|
375
|
-
// we use connecting status for wallet connect
|
|
376
|
-
const adapterModalConfig = this.modalConfig.adapters[adapterName];
|
|
377
|
-
adaptersConfig[adapterName] = _objectSpread(_objectSpread({}, adapterModalConfig), {}, {
|
|
378
|
-
isInjected: adapter.isInjected
|
|
379
|
-
});
|
|
380
|
-
this.loginModal.addWalletLogins(adaptersConfig, {
|
|
381
|
-
showExternalWalletsOnly: !!(options !== null && options !== void 0 && options.showExternalWalletsOnly)
|
|
382
|
-
});
|
|
383
|
-
}
|
|
384
|
-
}
|
|
385
|
-
});
|
|
386
|
-
}
|
|
387
|
-
initializeInAppWallet(adapterName) {
|
|
388
|
-
base.log.info("adapterInitResults", adapterName);
|
|
389
|
-
if (this.walletAdapters[adapterName].type === base.ADAPTER_CATEGORY.IN_APP) {
|
|
390
|
-
var _adapterName, _this$options$uiConfi2, _this$options$uiConfi3, _this$options$uiConfi4;
|
|
391
|
-
this.loginModal.addSocialLogins(adapterName, ui.getAdapterSocialLogins(adapterName, (_adapterName = this.modalConfig.adapters[adapterName]) === null || _adapterName === void 0 ? void 0 : _adapterName.loginMethods), ((_this$options$uiConfi2 = this.options.uiConfig) === null || _this$options$uiConfi2 === void 0 ? void 0 : _this$options$uiConfi2.loginMethodsOrder) || ui.AUTH_PROVIDERS, _objectSpread(_objectSpread({}, this.options.uiConfig), {}, {
|
|
392
|
-
loginGridCol: ((_this$options$uiConfi3 = this.options.uiConfig) === null || _this$options$uiConfi3 === void 0 ? void 0 : _this$options$uiConfi3.loginGridCol) || 3,
|
|
393
|
-
primaryButton: ((_this$options$uiConfi4 = this.options.uiConfig) === null || _this$options$uiConfi4 === void 0 ? void 0 : _this$options$uiConfi4.primaryButton) || "socialLogin"
|
|
394
|
-
}));
|
|
395
|
-
}
|
|
396
|
-
}
|
|
397
|
-
subscribeToLoginModalEvents() {
|
|
398
|
-
this.loginModal.on(ui.LOGIN_MODAL_EVENTS.LOGIN, async params => {
|
|
399
|
-
try {
|
|
400
|
-
await this.connectTo(params.adapter, params.loginParams);
|
|
401
|
-
} catch (error) {
|
|
402
|
-
base.log.error(`Error while connecting to adapter: ${params.adapter}`, error);
|
|
403
|
-
}
|
|
404
|
-
});
|
|
405
|
-
this.loginModal.on(ui.LOGIN_MODAL_EVENTS.INIT_EXTERNAL_WALLETS, async params => {
|
|
406
|
-
await this.initExternalWalletAdapters(params.externalWalletsInitialized);
|
|
407
|
-
});
|
|
408
|
-
this.loginModal.on(ui.LOGIN_MODAL_EVENTS.DISCONNECT, async () => {
|
|
409
|
-
try {
|
|
410
|
-
await this.logout();
|
|
411
|
-
} catch (error) {
|
|
412
|
-
base.log.error(`Error while disconnecting`, error);
|
|
413
|
-
}
|
|
414
|
-
});
|
|
415
|
-
this.loginModal.on(ui.LOGIN_MODAL_EVENTS.MODAL_VISIBILITY, async visibility => {
|
|
416
|
-
base.log.debug("is login modal visible", visibility);
|
|
417
|
-
this.emit(ui.LOGIN_MODAL_EVENTS.MODAL_VISIBILITY, visibility);
|
|
418
|
-
const adapter = this.walletAdapters[base.WALLET_ADAPTERS.WALLET_CONNECT_V2];
|
|
419
|
-
if (adapter) {
|
|
420
|
-
const walletConnectStatus = adapter === null || adapter === void 0 ? void 0 : adapter.status;
|
|
421
|
-
base.log.debug("trying refreshing wc session", visibility, walletConnectStatus);
|
|
422
|
-
if (visibility && (walletConnectStatus === base.ADAPTER_STATUS.READY || walletConnectStatus === base.ADAPTER_STATUS.CONNECTING)) {
|
|
423
|
-
base.log.debug("refreshing wc session");
|
|
424
|
-
|
|
425
|
-
// refreshing session for wallet connect whenever modal is opened.
|
|
426
|
-
try {
|
|
427
|
-
adapter.connect();
|
|
428
|
-
} catch (error) {
|
|
429
|
-
base.log.error(`Error while disconnecting to wallet connect in core`, error);
|
|
430
|
-
}
|
|
431
|
-
}
|
|
432
|
-
if (!visibility && this.status === base.ADAPTER_STATUS.CONNECTED && (walletConnectStatus === base.ADAPTER_STATUS.READY || walletConnectStatus === base.ADAPTER_STATUS.CONNECTING)) {
|
|
433
|
-
base.log.debug("this stops wc adapter from trying to reconnect once proposal expires");
|
|
434
|
-
adapter.status = base.ADAPTER_STATUS.READY;
|
|
435
|
-
}
|
|
436
|
-
}
|
|
437
|
-
});
|
|
438
|
-
}
|
|
439
|
-
}
|
|
440
|
-
|
|
441
|
-
exports.Web3Auth = Web3Auth;
|