@web3auth/modal 6.1.8 → 7.0.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 +32 -65
- package/dist/modal.cjs.js.map +1 -1
- package/dist/modal.esm.js +38 -63
- package/dist/modal.esm.js.map +1 -1
- package/dist/modal.umd.min.js +1 -1
- package/dist/modal.umd.min.js.LICENSE.txt +9 -2
- package/dist/modal.umd.min.js.map +1 -1
- package/dist/types/default.d.ts +3 -2
- package/dist/types/interface.d.ts +2 -2
- package/dist/types/modalManager.d.ts +2 -2
- package/package.json +18 -18
- package/src/default.ts +6 -4
- package/src/interface.ts +2 -9
- package/src/modalManager.ts +11 -29
- package/dist/types/utils.d.ts +0 -12
- package/src/utils.ts +0 -25
package/dist/types/default.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { OPENLOGIN_NETWORK_TYPE } from "@toruslabs/openlogin-utils";
|
|
2
|
-
import { CustomChainConfig, IAdapter, WALLET_ADAPTER_TYPE } from "@web3auth/base";
|
|
3
|
-
import {
|
|
2
|
+
import { CustomChainConfig, IAdapter, IBaseProvider, WALLET_ADAPTER_TYPE } from "@web3auth/base";
|
|
3
|
+
import { UIConfig } from "@web3auth/ui";
|
|
4
4
|
export declare function getPrivateKeyProvider(chainConfig: CustomChainConfig): Promise<IBaseProvider<string>>;
|
|
5
5
|
export declare const getDefaultAdapterModule: (params: {
|
|
6
6
|
name: WALLET_ADAPTER_TYPE;
|
|
@@ -8,4 +8,5 @@ export declare const getDefaultAdapterModule: (params: {
|
|
|
8
8
|
customChainConfig: Partial<CustomChainConfig> & Pick<CustomChainConfig, "chainNamespace">;
|
|
9
9
|
sessionTime?: number;
|
|
10
10
|
web3AuthNetwork?: OPENLOGIN_NETWORK_TYPE;
|
|
11
|
+
uiConfig?: Omit<UIConfig, "adapterListener">;
|
|
11
12
|
}) => Promise<IAdapter<unknown>>;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { BaseAdapterConfig, ChainNamespaceType, IWeb3Auth, LoginMethodConfig,
|
|
1
|
+
import type { BaseAdapterConfig, ChainNamespaceType, IProvider, IWeb3Auth, LoginMethodConfig, WALLET_ADAPTER_TYPE } from "@web3auth/base";
|
|
2
2
|
export interface ModalConfig extends BaseAdapterConfig {
|
|
3
3
|
loginMethods?: LoginMethodConfig;
|
|
4
4
|
}
|
|
@@ -10,5 +10,5 @@ export interface IWeb3AuthModal extends IWeb3Auth {
|
|
|
10
10
|
initModal(params?: {
|
|
11
11
|
modalConfig?: Record<WALLET_ADAPTER_TYPE, ModalConfig>;
|
|
12
12
|
}): Promise<void>;
|
|
13
|
-
connect(): Promise<
|
|
13
|
+
connect(): Promise<IProvider | null>;
|
|
14
14
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { IProvider, WALLET_ADAPTER_TYPE } from "@web3auth/base";
|
|
2
2
|
import { Web3AuthNoModal, Web3AuthNoModalOptions } from "@web3auth/no-modal";
|
|
3
3
|
import { LoginModal, UIConfig } from "@web3auth/ui";
|
|
4
4
|
import { IWeb3AuthModal, ModalConfig } from "./interface";
|
|
@@ -25,7 +25,7 @@ export declare class Web3Auth extends Web3AuthNoModal implements IWeb3AuthModal
|
|
|
25
25
|
initModal(params?: {
|
|
26
26
|
modalConfig?: Record<WALLET_ADAPTER_TYPE, ModalConfig>;
|
|
27
27
|
}): Promise<void>;
|
|
28
|
-
connect(): Promise<
|
|
28
|
+
connect(): Promise<IProvider | null>;
|
|
29
29
|
private initExternalWalletAdapters;
|
|
30
30
|
private initializeInAppWallet;
|
|
31
31
|
private subscribeToLoginModalEvents;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@web3auth/modal",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "7.0.0",
|
|
4
4
|
"homepage": "https://github.com/Web3Auth/Web3Auth#readme",
|
|
5
5
|
"license": "ISC",
|
|
6
6
|
"main": "dist/modal.cjs.js",
|
|
@@ -19,23 +19,23 @@
|
|
|
19
19
|
"pre-commit": "lint-staged --cwd ."
|
|
20
20
|
},
|
|
21
21
|
"dependencies": {
|
|
22
|
-
"@web3auth/base": "^
|
|
23
|
-
"@web3auth/base-provider": "^
|
|
24
|
-
"@web3auth/ethereum-provider": "^
|
|
25
|
-
"@web3auth/metamask-adapter": "^
|
|
26
|
-
"@web3auth/no-modal": "^
|
|
27
|
-
"@web3auth/openlogin-adapter": "^
|
|
28
|
-
"@web3auth/phantom-adapter": "^
|
|
29
|
-
"@web3auth/solana-provider": "^
|
|
30
|
-
"@web3auth/torus-evm-adapter": "^
|
|
31
|
-
"@web3auth/torus-solana-adapter": "^
|
|
32
|
-
"@web3auth/ui": "^
|
|
33
|
-
"@web3auth/wallet-connect-v2-adapter": "^
|
|
22
|
+
"@web3auth/base": "^7.0.0",
|
|
23
|
+
"@web3auth/base-provider": "^7.0.0",
|
|
24
|
+
"@web3auth/ethereum-provider": "^7.0.0",
|
|
25
|
+
"@web3auth/metamask-adapter": "^7.0.0",
|
|
26
|
+
"@web3auth/no-modal": "^7.0.0",
|
|
27
|
+
"@web3auth/openlogin-adapter": "^7.0.0",
|
|
28
|
+
"@web3auth/phantom-adapter": "^7.0.0",
|
|
29
|
+
"@web3auth/solana-provider": "^7.0.0",
|
|
30
|
+
"@web3auth/torus-evm-adapter": "^7.0.0",
|
|
31
|
+
"@web3auth/torus-solana-adapter": "^7.0.0",
|
|
32
|
+
"@web3auth/ui": "^7.0.0",
|
|
33
|
+
"@web3auth/wallet-connect-v2-adapter": "^7.0.0"
|
|
34
34
|
},
|
|
35
35
|
"devDependencies": {
|
|
36
|
-
"@svgr/webpack": "^8.0
|
|
36
|
+
"@svgr/webpack": "^8.1.0",
|
|
37
37
|
"@toruslabs/isomorphic-style-loader": "^5.3.3",
|
|
38
|
-
"@toruslabs/openlogin-utils": "^
|
|
38
|
+
"@toruslabs/openlogin-utils": "^5.0.2",
|
|
39
39
|
"css-loader": "^6.8.1",
|
|
40
40
|
"postcss-prefix-selector": "^1.16.0",
|
|
41
41
|
"style-loader": "^3.3.3",
|
|
@@ -68,8 +68,8 @@
|
|
|
68
68
|
"access": "public"
|
|
69
69
|
},
|
|
70
70
|
"engines": {
|
|
71
|
-
"node": ">=
|
|
72
|
-
"npm": ">=
|
|
71
|
+
"node": ">=18.x",
|
|
72
|
+
"npm": ">=9.x"
|
|
73
73
|
},
|
|
74
|
-
"gitHead": "
|
|
74
|
+
"gitHead": "b13ea4976979dcd6c63a1ecb3d96b5dc448fd535"
|
|
75
75
|
}
|
package/src/default.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { OPENLOGIN_NETWORK_TYPE, OpenLoginOptions } from "@toruslabs/openlogin-utils";
|
|
2
|
-
import { CHAIN_NAMESPACES, CustomChainConfig, getChainConfig, IAdapter, WALLET_ADAPTER_TYPE, WALLET_ADAPTERS } from "@web3auth/base";
|
|
3
|
-
import { CommonPrivateKeyProvider
|
|
2
|
+
import { CHAIN_NAMESPACES, CustomChainConfig, getChainConfig, IAdapter, IBaseProvider, WALLET_ADAPTER_TYPE, WALLET_ADAPTERS } from "@web3auth/base";
|
|
3
|
+
import { CommonPrivateKeyProvider } from "@web3auth/base-provider";
|
|
4
|
+
import { UIConfig } from "@web3auth/ui";
|
|
4
5
|
|
|
5
6
|
export async function getPrivateKeyProvider(chainConfig: CustomChainConfig): Promise<IBaseProvider<string>> {
|
|
6
7
|
if (chainConfig.chainNamespace === CHAIN_NAMESPACES.SOLANA) {
|
|
@@ -24,8 +25,9 @@ export const getDefaultAdapterModule = async (params: {
|
|
|
24
25
|
customChainConfig: Partial<CustomChainConfig> & Pick<CustomChainConfig, "chainNamespace">;
|
|
25
26
|
sessionTime?: number;
|
|
26
27
|
web3AuthNetwork?: OPENLOGIN_NETWORK_TYPE;
|
|
28
|
+
uiConfig?: Omit<UIConfig, "adapterListener">;
|
|
27
29
|
}): Promise<IAdapter<unknown>> => {
|
|
28
|
-
const { name, customChainConfig, clientId, sessionTime, web3AuthNetwork } = params;
|
|
30
|
+
const { name, customChainConfig, clientId, sessionTime, web3AuthNetwork, uiConfig } = params;
|
|
29
31
|
if (!Object.values(CHAIN_NAMESPACES).includes(customChainConfig.chainNamespace))
|
|
30
32
|
throw new Error(`Invalid chainNamespace: ${customChainConfig.chainNamespace}`);
|
|
31
33
|
const finalChainConfig = {
|
|
@@ -73,7 +75,7 @@ export const getDefaultAdapterModule = async (params: {
|
|
|
73
75
|
...defaultOptions,
|
|
74
76
|
clientId,
|
|
75
77
|
chainConfig: { ...finalChainConfig },
|
|
76
|
-
adapterSettings: { ...(defaultOptions.adapterSettings as OpenLoginOptions), clientId, network: web3AuthNetwork },
|
|
78
|
+
adapterSettings: { ...(defaultOptions.adapterSettings as OpenLoginOptions), clientId, network: web3AuthNetwork, whiteLabel: uiConfig },
|
|
77
79
|
sessionTime,
|
|
78
80
|
web3AuthNetwork,
|
|
79
81
|
privateKeyProvider,
|
package/src/interface.ts
CHANGED
|
@@ -1,11 +1,4 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
BaseAdapterConfig,
|
|
3
|
-
ChainNamespaceType,
|
|
4
|
-
IWeb3Auth,
|
|
5
|
-
LoginMethodConfig,
|
|
6
|
-
SafeEventEmitterProvider,
|
|
7
|
-
WALLET_ADAPTER_TYPE,
|
|
8
|
-
} from "@web3auth/base";
|
|
1
|
+
import type { BaseAdapterConfig, ChainNamespaceType, IProvider, IWeb3Auth, LoginMethodConfig, WALLET_ADAPTER_TYPE } from "@web3auth/base";
|
|
9
2
|
export interface ModalConfig extends BaseAdapterConfig {
|
|
10
3
|
loginMethods?: LoginMethodConfig;
|
|
11
4
|
}
|
|
@@ -17,5 +10,5 @@ export interface AdaptersModalConfig {
|
|
|
17
10
|
|
|
18
11
|
export interface IWeb3AuthModal extends IWeb3Auth {
|
|
19
12
|
initModal(params?: { modalConfig?: Record<WALLET_ADAPTER_TYPE, ModalConfig> }): Promise<void>;
|
|
20
|
-
connect(): Promise<
|
|
13
|
+
connect(): Promise<IProvider | null>;
|
|
21
14
|
}
|
package/src/modalManager.ts
CHANGED
|
@@ -6,16 +6,16 @@ import {
|
|
|
6
6
|
CHAIN_NAMESPACES,
|
|
7
7
|
CustomChainConfig,
|
|
8
8
|
getChainConfig,
|
|
9
|
+
IProvider,
|
|
9
10
|
log,
|
|
10
11
|
LoginMethodConfig,
|
|
11
|
-
SafeEventEmitterProvider,
|
|
12
12
|
WALLET_ADAPTER_TYPE,
|
|
13
13
|
WALLET_ADAPTERS,
|
|
14
14
|
} from "@web3auth/base";
|
|
15
15
|
import { CommonJRPCProvider } from "@web3auth/base-provider";
|
|
16
16
|
import { Web3AuthNoModal, Web3AuthNoModalOptions } from "@web3auth/no-modal";
|
|
17
17
|
import type { OpenloginAdapter } from "@web3auth/openlogin-adapter";
|
|
18
|
-
import { getAdapterSocialLogins, LOGIN_MODAL_EVENTS, LoginModal, OPENLOGIN_PROVIDERS, UIConfig } from "@web3auth/ui";
|
|
18
|
+
import { getAdapterSocialLogins, getUserLanguage, LOGIN_MODAL_EVENTS, LoginModal, OPENLOGIN_PROVIDERS, UIConfig } from "@web3auth/ui";
|
|
19
19
|
|
|
20
20
|
import {
|
|
21
21
|
defaultEvmDappModalConfig,
|
|
@@ -26,7 +26,6 @@ import {
|
|
|
26
26
|
} from "./config";
|
|
27
27
|
import { getDefaultAdapterModule, getPrivateKeyProvider } from "./default";
|
|
28
28
|
import { AdaptersModalConfig, IWeb3AuthModal, ModalConfig } from "./interface";
|
|
29
|
-
import { getUserLanguage } from "./utils";
|
|
30
29
|
|
|
31
30
|
export interface Web3AuthOptions extends Web3AuthNoModalOptions {
|
|
32
31
|
/**
|
|
@@ -77,20 +76,12 @@ export class Web3Auth extends Web3AuthNoModal implements IWeb3AuthModal {
|
|
|
77
76
|
throw new Error(`Invalid chainNamespace provided: ${providedChainConfig.chainNamespace}`);
|
|
78
77
|
}
|
|
79
78
|
|
|
80
|
-
|
|
81
|
-
|
|
79
|
+
if (!this.options.uiConfig.defaultLanguage) this.options.uiConfig.defaultLanguage = getUserLanguage(this.options.uiConfig.defaultLanguage);
|
|
80
|
+
if (!this.options.uiConfig.mode) this.options.uiConfig.mode = "auto";
|
|
82
81
|
|
|
83
82
|
this.loginModal = new LoginModal({
|
|
84
|
-
|
|
85
|
-
appName: this.options.uiConfig?.appName || "blockchain",
|
|
86
|
-
appLogo: this.options.uiConfig?.appLogo || "",
|
|
83
|
+
...this.options.uiConfig,
|
|
87
84
|
adapterListener: this,
|
|
88
|
-
displayErrorsOnModal: this.options.uiConfig?.displayErrorsOnModal,
|
|
89
|
-
defaultLanguage,
|
|
90
|
-
modalZIndex: this.options.uiConfig?.modalZIndex || "99998",
|
|
91
|
-
web3AuthNetwork: this.options.web3AuthNetwork,
|
|
92
|
-
loginGridCol: this.options.uiConfig?.loginGridCol || 3,
|
|
93
|
-
primaryButton: this.options.uiConfig?.primaryButton || "socialLogin",
|
|
94
85
|
});
|
|
95
86
|
this.subscribeToLoginModalEvents();
|
|
96
87
|
}
|
|
@@ -132,6 +123,7 @@ export class Web3Auth extends Web3AuthNoModal implements IWeb3AuthModal {
|
|
|
132
123
|
clientId: this.options.clientId,
|
|
133
124
|
sessionTime: this.options.sessionTime,
|
|
134
125
|
web3AuthNetwork: this.options.web3AuthNetwork,
|
|
126
|
+
uiConfig: this.options.uiConfig,
|
|
135
127
|
});
|
|
136
128
|
|
|
137
129
|
this.walletAdapters[adapterName] = ad;
|
|
@@ -160,7 +152,7 @@ export class Web3Auth extends Web3AuthNoModal implements IWeb3AuthModal {
|
|
|
160
152
|
const openloginAdapter = this.walletAdapters[adapterName] as OpenloginAdapter;
|
|
161
153
|
if (!openloginAdapter.privateKeyProvider) {
|
|
162
154
|
const currentPrivateKeyProvider = await getPrivateKeyProvider(openloginAdapter.chainConfigProxy as CustomChainConfig);
|
|
163
|
-
openloginAdapter.setAdapterSettings({ privateKeyProvider: currentPrivateKeyProvider });
|
|
155
|
+
openloginAdapter.setAdapterSettings({ privateKeyProvider: currentPrivateKeyProvider, whiteLabel: this.options.uiConfig });
|
|
164
156
|
}
|
|
165
157
|
}
|
|
166
158
|
|
|
@@ -168,14 +160,13 @@ export class Web3Auth extends Web3AuthNoModal implements IWeb3AuthModal {
|
|
|
168
160
|
}
|
|
169
161
|
});
|
|
170
162
|
|
|
171
|
-
|
|
163
|
+
const adapterNames = await Promise.all(adapterConfigurationPromises);
|
|
172
164
|
const hasInAppWallets = Object.values(this.walletAdapters).some((adapter) => {
|
|
173
165
|
if (adapter.type !== ADAPTER_CATEGORY.IN_APP) return false;
|
|
174
166
|
if (this.modalConfig.adapters?.[adapter.name]?.showOnModal !== true) return false;
|
|
175
167
|
if (!this.modalConfig.adapters?.[adapter.name]?.loginMethods) return true;
|
|
176
168
|
const mergedLoginMethods = getAdapterSocialLogins(
|
|
177
169
|
adapter.name,
|
|
178
|
-
this.walletAdapters[adapter.name],
|
|
179
170
|
(this.modalConfig.adapters as Record<WALLET_ADAPTER_TYPE, ModalConfig>)[adapter.name]?.loginMethods
|
|
180
171
|
);
|
|
181
172
|
if (Object.values(mergedLoginMethods).some((method: LoginMethodConfig[keyof LoginMethodConfig]) => method.showOnModal)) return true;
|
|
@@ -183,11 +174,6 @@ export class Web3Auth extends Web3AuthNoModal implements IWeb3AuthModal {
|
|
|
183
174
|
});
|
|
184
175
|
log.debug(hasInAppWallets, this.walletAdapters, adapterNames, "hasInAppWallets");
|
|
185
176
|
|
|
186
|
-
// if both wc1 and wc2 are configured, give precedence to wc2.
|
|
187
|
-
if (this.walletAdapters[WALLET_ADAPTERS.WALLET_CONNECT_V1] && this.walletAdapters[WALLET_ADAPTERS.WALLET_CONNECT_V2]) {
|
|
188
|
-
delete this.walletAdapters[WALLET_ADAPTERS.WALLET_CONNECT_V1];
|
|
189
|
-
adapterNames = adapterNames.filter((ad) => ad !== WALLET_ADAPTERS.WALLET_CONNECT_V1);
|
|
190
|
-
}
|
|
191
177
|
// Now, initialize the adapters.
|
|
192
178
|
const initPromises = adapterNames.map(async (adapterName) => {
|
|
193
179
|
if (!adapterName) return;
|
|
@@ -232,7 +218,7 @@ export class Web3Auth extends Web3AuthNoModal implements IWeb3AuthModal {
|
|
|
232
218
|
}
|
|
233
219
|
}
|
|
234
220
|
|
|
235
|
-
public async connect(): Promise<
|
|
221
|
+
public async connect(): Promise<IProvider | null> {
|
|
236
222
|
// if (!this.loginModal.initialized) throw new Error("Login modal is not initialized");
|
|
237
223
|
// if already connected return provider
|
|
238
224
|
if (this.connectedAdapterName && this.status === ADAPTER_STATUS.CONNECTED && this.provider) return this.provider;
|
|
@@ -281,11 +267,7 @@ export class Web3Auth extends Web3AuthNoModal implements IWeb3AuthModal {
|
|
|
281
267
|
if (this.walletAdapters[adapterName].type === ADAPTER_CATEGORY.IN_APP) {
|
|
282
268
|
this.loginModal.addSocialLogins(
|
|
283
269
|
adapterName,
|
|
284
|
-
getAdapterSocialLogins(
|
|
285
|
-
adapterName,
|
|
286
|
-
this.walletAdapters[adapterName],
|
|
287
|
-
(this.modalConfig.adapters as Record<WALLET_ADAPTER_TYPE, ModalConfig>)[adapterName]?.loginMethods
|
|
288
|
-
),
|
|
270
|
+
getAdapterSocialLogins(adapterName, (this.modalConfig.adapters as Record<WALLET_ADAPTER_TYPE, ModalConfig>)[adapterName]?.loginMethods),
|
|
289
271
|
this.options.uiConfig?.loginMethodsOrder || OPENLOGIN_PROVIDERS,
|
|
290
272
|
{
|
|
291
273
|
...this.options.uiConfig,
|
|
@@ -317,7 +299,7 @@ export class Web3Auth extends Web3AuthNoModal implements IWeb3AuthModal {
|
|
|
317
299
|
this.loginModal.on(LOGIN_MODAL_EVENTS.MODAL_VISIBILITY, async (visibility: boolean) => {
|
|
318
300
|
log.debug("is login modal visible", visibility);
|
|
319
301
|
this.emit(LOGIN_MODAL_EVENTS.MODAL_VISIBILITY, visibility);
|
|
320
|
-
const adapter = this.walletAdapters[WALLET_ADAPTERS.WALLET_CONNECT_V2]
|
|
302
|
+
const adapter = this.walletAdapters[WALLET_ADAPTERS.WALLET_CONNECT_V2];
|
|
321
303
|
if (adapter) {
|
|
322
304
|
const walletConnectStatus = adapter?.status;
|
|
323
305
|
log.debug("trying refreshing wc session", visibility, walletConnectStatus);
|
package/dist/types/utils.d.ts
DELETED
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
export declare const languageMap: {
|
|
2
|
-
en: string;
|
|
3
|
-
de: string;
|
|
4
|
-
ja: string;
|
|
5
|
-
ko: string;
|
|
6
|
-
zh: string;
|
|
7
|
-
es: string;
|
|
8
|
-
fr: string;
|
|
9
|
-
pt: string;
|
|
10
|
-
nl: string;
|
|
11
|
-
};
|
|
12
|
-
export declare const getUserLanguage: (defaultLanguage: string | undefined) => string;
|
package/src/utils.ts
DELETED
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
interface NavigatorLanguage {
|
|
2
|
-
userLanguage?: string;
|
|
3
|
-
}
|
|
4
|
-
|
|
5
|
-
export const languageMap = {
|
|
6
|
-
en: "english",
|
|
7
|
-
de: "german",
|
|
8
|
-
ja: "japanese",
|
|
9
|
-
ko: "korean",
|
|
10
|
-
zh: "mandarin",
|
|
11
|
-
es: "spanish",
|
|
12
|
-
fr: "french",
|
|
13
|
-
pt: "portuguese",
|
|
14
|
-
nl: "dutch",
|
|
15
|
-
};
|
|
16
|
-
|
|
17
|
-
export const getUserLanguage = (defaultLanguage: string | undefined) => {
|
|
18
|
-
let userLanguage = defaultLanguage;
|
|
19
|
-
if (!userLanguage) {
|
|
20
|
-
const browserLanguage =
|
|
21
|
-
typeof window !== "undefined" ? (window.navigator as NavigatorLanguage).userLanguage || window.navigator.language || "en-US" : "en-US";
|
|
22
|
-
userLanguage = browserLanguage.split("-")[0];
|
|
23
|
-
}
|
|
24
|
-
return Object.prototype.hasOwnProperty.call(languageMap, userLanguage) ? userLanguage : "en";
|
|
25
|
-
};
|