@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.
@@ -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;
@@ -7,5 +7,6 @@ export declare const languageMap: {
7
7
  es: string;
8
8
  fr: string;
9
9
  pt: string;
10
+ nl: string;
10
11
  };
11
12
  export declare const getUserLanguage: (defaultLanguage: string | undefined) => string;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@web3auth/modal",
3
- "version": "5.2.0",
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": "^5.2.0",
23
- "@web3auth/metamask-adapter": "^5.2.0",
24
- "@web3auth/no-modal": "^5.2.0",
25
- "@web3auth/openlogin-adapter": "^5.2.0",
26
- "@web3auth/phantom-adapter": "^5.2.0",
27
- "@web3auth/torus-evm-adapter": "^5.2.0",
28
- "@web3auth/torus-solana-adapter": "^5.2.0",
29
- "@web3auth/ui": "^5.2.0",
30
- "@web3auth/wallet-connect-v1-adapter": "^5.2.0"
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": "^6.5.1",
36
+ "@svgr/webpack": "^8.0.1",
34
37
  "@toruslabs/isomorphic-style-loader": "^5.3.3",
35
- "@toruslabs/openlogin": "^3.2.1",
36
- "css-loader": "^6.7.3",
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.2",
39
- "tailwindcss": "^3.2.7",
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
- "gitHead": "6ccd82ba66c340dff977bf03f3d26cf7b267e01c"
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.WALLET_CONNECT_V1]: {
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.WALLET_CONNECT_V1) {
36
- const { WalletConnectV1Adapter } = await import("@web3auth/wallet-connect-v1-adapter");
37
- const adapter = new WalletConnectV1Adapter({ chainConfig: finalChainConfig, clientId, sessionTime, web3AuthNetwork });
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
  }
@@ -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, () => {
package/src/utils.ts CHANGED
@@ -11,6 +11,7 @@ export const languageMap = {
11
11
  es: "spanish",
12
12
  fr: "french",
13
13
  pt: "portuguese",
14
+ nl: "dutch",
14
15
  };
15
16
 
16
17
  export const getUserLanguage = (defaultLanguage: string | undefined) => {