@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/types/default.d.ts
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
|
-
import type { OPENLOGIN_NETWORK_TYPE } from "@toruslabs/openlogin";
|
|
1
|
+
import type { OPENLOGIN_NETWORK_TYPE } from "@toruslabs/openlogin-utils";
|
|
2
2
|
import { CustomChainConfig, IAdapter, WALLET_ADAPTER_TYPE } from "@web3auth/base";
|
|
3
|
+
import { IBaseProvider } from "@web3auth/base-provider";
|
|
4
|
+
export declare function getPrivateKeyProvider(chainConfig: CustomChainConfig): Promise<IBaseProvider<string>>;
|
|
3
5
|
export declare const getDefaultAdapterModule: (params: {
|
|
4
6
|
name: WALLET_ADAPTER_TYPE;
|
|
5
7
|
clientId: string;
|
package/dist/types/utils.d.ts
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@web3auth/modal",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "6.0.0-alpha.0",
|
|
4
4
|
"homepage": "https://github.com/Web3Auth/Web3Auth#readme",
|
|
5
5
|
"license": "ISC",
|
|
6
6
|
"main": "dist/modal.cjs.js",
|
|
@@ -19,24 +19,27 @@
|
|
|
19
19
|
"pre-commit": "lint-staged --cwd ."
|
|
20
20
|
},
|
|
21
21
|
"dependencies": {
|
|
22
|
-
"@web3auth/base": "^
|
|
23
|
-
"@web3auth/
|
|
24
|
-
"@web3auth/
|
|
25
|
-
"@web3auth/
|
|
26
|
-
"@web3auth/
|
|
27
|
-
"@web3auth/
|
|
28
|
-
"@web3auth/
|
|
29
|
-
"@web3auth/
|
|
30
|
-
"@web3auth/
|
|
22
|
+
"@web3auth/base": "^6.0.0-alpha.0",
|
|
23
|
+
"@web3auth/base-provider": "^6.0.0-alpha.0",
|
|
24
|
+
"@web3auth/ethereum-provider": "^6.0.0-alpha.0",
|
|
25
|
+
"@web3auth/metamask-adapter": "^6.0.0-alpha.0",
|
|
26
|
+
"@web3auth/no-modal": "^6.0.0-alpha.0",
|
|
27
|
+
"@web3auth/openlogin-adapter": "^6.0.0-alpha.0",
|
|
28
|
+
"@web3auth/phantom-adapter": "^6.0.0-alpha.0",
|
|
29
|
+
"@web3auth/solana-provider": "^6.0.0-alpha.0",
|
|
30
|
+
"@web3auth/torus-evm-adapter": "^6.0.0-alpha.0",
|
|
31
|
+
"@web3auth/torus-solana-adapter": "^6.0.0-alpha.0",
|
|
32
|
+
"@web3auth/ui": "^6.0.0-alpha.0",
|
|
33
|
+
"@web3auth/wallet-connect-v2-adapter": "^6.0.0-alpha.0"
|
|
31
34
|
},
|
|
32
35
|
"devDependencies": {
|
|
33
|
-
"@svgr/webpack": "^
|
|
36
|
+
"@svgr/webpack": "^8.0.1",
|
|
34
37
|
"@toruslabs/isomorphic-style-loader": "^5.3.3",
|
|
35
|
-
"@toruslabs/openlogin": "^
|
|
36
|
-
"css-loader": "^6.
|
|
38
|
+
"@toruslabs/openlogin-utils": "^4.5.1",
|
|
39
|
+
"css-loader": "^6.8.1",
|
|
37
40
|
"postcss-prefix-selector": "^1.16.0",
|
|
38
|
-
"style-loader": "^3.3.
|
|
39
|
-
"tailwindcss": "^3.2
|
|
41
|
+
"style-loader": "^3.3.3",
|
|
42
|
+
"tailwindcss": "^3.3.2",
|
|
40
43
|
"url-loader": "^4.1.1"
|
|
41
44
|
},
|
|
42
45
|
"peerDependencies": {
|
|
@@ -64,5 +67,9 @@
|
|
|
64
67
|
"publishConfig": {
|
|
65
68
|
"access": "public"
|
|
66
69
|
},
|
|
67
|
-
"
|
|
70
|
+
"engines": {
|
|
71
|
+
"node": ">=16.18.1",
|
|
72
|
+
"npm": ">=8.x"
|
|
73
|
+
},
|
|
74
|
+
"gitHead": "c3f6ff688812333f37f10d8a6cf00be88aa451a1"
|
|
68
75
|
}
|
package/src/config.ts
CHANGED
|
@@ -47,7 +47,7 @@ export const defaultEvmDappModalConfig: AdaptersModalConfig = {
|
|
|
47
47
|
showOnMobile: true,
|
|
48
48
|
showOnDesktop: true,
|
|
49
49
|
},
|
|
50
|
-
[EVM_ADAPTERS.
|
|
50
|
+
[EVM_ADAPTERS.WALLET_CONNECT_V2]: {
|
|
51
51
|
label: "Wallet Connect",
|
|
52
52
|
showOnModal: true,
|
|
53
53
|
showOnMobile: true,
|
package/src/default.ts
CHANGED
|
@@ -1,5 +1,21 @@
|
|
|
1
|
-
import type { OPENLOGIN_NETWORK_TYPE, OpenLoginOptions } from "@toruslabs/openlogin";
|
|
1
|
+
import type { OPENLOGIN_NETWORK_TYPE, OpenLoginOptions } from "@toruslabs/openlogin-utils";
|
|
2
2
|
import { CHAIN_NAMESPACES, CustomChainConfig, getChainConfig, IAdapter, WALLET_ADAPTER_TYPE, WALLET_ADAPTERS } from "@web3auth/base";
|
|
3
|
+
import { CommonPrivateKeyProvider, IBaseProvider } from "@web3auth/base-provider";
|
|
4
|
+
|
|
5
|
+
export async function getPrivateKeyProvider(chainConfig: CustomChainConfig): Promise<IBaseProvider<string>> {
|
|
6
|
+
if (chainConfig.chainNamespace === CHAIN_NAMESPACES.SOLANA) {
|
|
7
|
+
const { SolanaPrivateKeyProvider } = await import("@web3auth/solana-provider");
|
|
8
|
+
return new SolanaPrivateKeyProvider({ config: { chainConfig } });
|
|
9
|
+
} else if (chainConfig.chainNamespace === CHAIN_NAMESPACES.EIP155) {
|
|
10
|
+
const { EthereumPrivateKeyProvider } = await import("@web3auth/ethereum-provider");
|
|
11
|
+
return new EthereumPrivateKeyProvider({ config: { chainConfig } });
|
|
12
|
+
} else if (chainConfig.chainNamespace === CHAIN_NAMESPACES.OTHER) {
|
|
13
|
+
// Modal doesn't support ripple provider
|
|
14
|
+
// Can always override this with a custom provider
|
|
15
|
+
return new CommonPrivateKeyProvider();
|
|
16
|
+
}
|
|
17
|
+
throw new Error(`Invalid chainNamespace: ${chainConfig.chainNamespace} found while connecting to wallet`);
|
|
18
|
+
}
|
|
3
19
|
|
|
4
20
|
// warning: this function is not compatible with "OTHER" chain namespace.
|
|
5
21
|
export const getDefaultAdapterModule = async (params: {
|
|
@@ -32,12 +48,26 @@ export const getDefaultAdapterModule = async (params: {
|
|
|
32
48
|
const { PhantomAdapter } = await import("@web3auth/phantom-adapter");
|
|
33
49
|
const adapter = new PhantomAdapter({ chainConfig: finalChainConfig, clientId, sessionTime, web3AuthNetwork });
|
|
34
50
|
return adapter;
|
|
35
|
-
} else if (name === WALLET_ADAPTERS.
|
|
36
|
-
const {
|
|
37
|
-
const adapter = new
|
|
51
|
+
} else if (name === WALLET_ADAPTERS.WALLET_CONNECT_V2) {
|
|
52
|
+
const { WalletConnectV2Adapter } = await import("@web3auth/wallet-connect-v2-adapter");
|
|
53
|
+
const adapter = new WalletConnectV2Adapter({
|
|
54
|
+
chainConfig: finalChainConfig,
|
|
55
|
+
clientId,
|
|
56
|
+
sessionTime,
|
|
57
|
+
web3AuthNetwork,
|
|
58
|
+
adapterSettings: {
|
|
59
|
+
walletConnectInitOptions: {
|
|
60
|
+
// Using a default wallet connect project id for web3auth modal integration
|
|
61
|
+
projectId: "d3c63f19f9582f8ba48e982057eb096b",
|
|
62
|
+
},
|
|
63
|
+
},
|
|
64
|
+
});
|
|
38
65
|
return adapter;
|
|
39
66
|
} else if (name === WALLET_ADAPTERS.OPENLOGIN) {
|
|
40
67
|
const { OpenloginAdapter, getOpenloginDefaultOptions } = await import("@web3auth/openlogin-adapter");
|
|
68
|
+
|
|
69
|
+
const privateKeyProvider: IBaseProvider<string> = await getPrivateKeyProvider(finalChainConfig);
|
|
70
|
+
|
|
41
71
|
const defaultOptions = getOpenloginDefaultOptions();
|
|
42
72
|
const adapter = new OpenloginAdapter({
|
|
43
73
|
...defaultOptions,
|
|
@@ -46,6 +76,7 @@ export const getDefaultAdapterModule = async (params: {
|
|
|
46
76
|
adapterSettings: { ...(defaultOptions.adapterSettings as OpenLoginOptions), clientId, network: web3AuthNetwork },
|
|
47
77
|
sessionTime,
|
|
48
78
|
web3AuthNetwork,
|
|
79
|
+
privateKeyProvider,
|
|
49
80
|
});
|
|
50
81
|
return adapter;
|
|
51
82
|
}
|
package/src/modalManager.ts
CHANGED
|
@@ -12,7 +12,9 @@ import {
|
|
|
12
12
|
WALLET_ADAPTER_TYPE,
|
|
13
13
|
WALLET_ADAPTERS,
|
|
14
14
|
} from "@web3auth/base";
|
|
15
|
+
import { CommonJRPCProvider } from "@web3auth/base-provider";
|
|
15
16
|
import { Web3AuthNoModal, Web3AuthNoModalOptions } from "@web3auth/no-modal";
|
|
17
|
+
import type { OpenloginAdapter } from "@web3auth/openlogin-adapter";
|
|
16
18
|
import { getAdapterSocialLogins, LOGIN_MODAL_EVENTS, LoginModal, OPENLOGIN_PROVIDERS, UIConfig } from "@web3auth/ui";
|
|
17
19
|
|
|
18
20
|
import {
|
|
@@ -22,7 +24,7 @@ import {
|
|
|
22
24
|
defaultSolanaDappModalConfig,
|
|
23
25
|
defaultSolanaWalletModalConfig,
|
|
24
26
|
} from "./config";
|
|
25
|
-
import { getDefaultAdapterModule } from "./default";
|
|
27
|
+
import { getDefaultAdapterModule, getPrivateKeyProvider } from "./default";
|
|
26
28
|
import { AdaptersModalConfig, IWeb3AuthModal, ModalConfig } from "./interface";
|
|
27
29
|
import { getUserLanguage } from "./utils";
|
|
28
30
|
|
|
@@ -154,6 +156,14 @@ export class Web3Auth extends Web3AuthNoModal implements IWeb3AuthModal {
|
|
|
154
156
|
this.walletAdapters[adapterName].setAdapterSettings({ chainConfig });
|
|
155
157
|
}
|
|
156
158
|
|
|
159
|
+
if (adapterName === WALLET_ADAPTERS.OPENLOGIN) {
|
|
160
|
+
const openloginAdapter = this.walletAdapters[adapterName] as OpenloginAdapter;
|
|
161
|
+
if (!openloginAdapter.privateKeyProvider) {
|
|
162
|
+
const currentPrivateKeyProvider = await getPrivateKeyProvider(openloginAdapter.chainConfigProxy as CustomChainConfig);
|
|
163
|
+
openloginAdapter.setAdapterSettings({ privateKeyProvider: currentPrivateKeyProvider });
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
|
|
157
167
|
return adapterName;
|
|
158
168
|
}
|
|
159
169
|
});
|
|
@@ -202,6 +212,7 @@ export class Web3Auth extends Web3AuthNoModal implements IWeb3AuthModal {
|
|
|
202
212
|
}
|
|
203
213
|
});
|
|
204
214
|
|
|
215
|
+
this.commonJRPCProvider = await CommonJRPCProvider.getProviderInstance({ chainConfig: this.coreOptions.chainConfig as CustomChainConfig });
|
|
205
216
|
this.status = ADAPTER_STATUS.READY;
|
|
206
217
|
await Promise.all(initPromises);
|
|
207
218
|
|
|
@@ -224,7 +235,7 @@ export class Web3Auth extends Web3AuthNoModal implements IWeb3AuthModal {
|
|
|
224
235
|
public async connect(): Promise<SafeEventEmitterProvider | null> {
|
|
225
236
|
// if (!this.loginModal.initialized) throw new Error("Login modal is not initialized");
|
|
226
237
|
// if already connected return provider
|
|
227
|
-
if (this.provider) return this.provider;
|
|
238
|
+
if (this.connectedAdapterName && this.status === ADAPTER_STATUS.CONNECTED && this.provider) return this.provider;
|
|
228
239
|
this.loginModal.open();
|
|
229
240
|
return new Promise((resolve, reject) => {
|
|
230
241
|
this.once(ADAPTER_EVENTS.CONNECTED, () => {
|