@web3auth/no-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,7 +1,8 @@
1
- import type { OPENLOGIN_NETWORK_TYPE } from "@toruslabs/openlogin";
2
1
  import { SafeEventEmitter } from "@toruslabs/openlogin-jrpc";
2
+ import type { OPENLOGIN_NETWORK_TYPE } from "@toruslabs/openlogin-utils";
3
3
  import { ADAPTER_STATUS_TYPE, CustomChainConfig, IAdapter, IWeb3Auth, SafeEventEmitterProvider, UserAuthInfo, UserInfo, WALLET_ADAPTER_TYPE } from "@web3auth/base";
4
4
  import { IPlugin } from "@web3auth/base-plugin";
5
+ import { CommonJRPCProvider } from "@web3auth/base-provider";
5
6
  export interface Web3AuthNoModalOptions {
6
7
  /**
7
8
  * Client id for web3auth.
@@ -51,6 +52,7 @@ export declare class Web3AuthNoModal extends SafeEventEmitter implements IWeb3Au
51
52
  status: ADAPTER_STATUS_TYPE;
52
53
  cachedAdapter: string | null;
53
54
  protected walletAdapters: Record<string, IAdapter<unknown>>;
55
+ protected commonJRPCProvider: CommonJRPCProvider | null;
54
56
  private plugins;
55
57
  private storage;
56
58
  constructor(options: Web3AuthNoModalOptions);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@web3auth/no-modal",
3
- "version": "5.2.0",
3
+ "version": "6.0.0-alpha.0",
4
4
  "description": "Multi chain wallet aggregator for web3Auth",
5
5
  "keywords": [
6
6
  "web3Auth/no-modal",
@@ -35,10 +35,12 @@
35
35
  "@babel/runtime": "^7.x"
36
36
  },
37
37
  "dependencies": {
38
- "@toruslabs/openlogin": "^3.2.1",
39
- "@toruslabs/openlogin-jrpc": "^3.2.0",
40
- "@web3auth/base": "^5.2.0",
41
- "@web3auth/base-plugin": "^5.2.0"
38
+ "@toruslabs/openlogin": "^4.5.2",
39
+ "@toruslabs/openlogin-jrpc": "^4.5.1",
40
+ "@toruslabs/openlogin-utils": "^4.5.1",
41
+ "@web3auth/base": "^6.0.0-alpha.0",
42
+ "@web3auth/base-plugin": "^6.0.0-alpha.0",
43
+ "@web3auth/base-provider": "^6.0.0-alpha.0"
42
44
  },
43
45
  "lint-staged": {
44
46
  "!(*d).ts": [
@@ -56,5 +58,9 @@
56
58
  "bugs": {
57
59
  "url": "https://github.com/Web3Auth/Web3Auth/issues"
58
60
  },
59
- "gitHead": "6ccd82ba66c340dff977bf03f3d26cf7b267e01c"
61
+ "engines": {
62
+ "node": ">=16.18.1",
63
+ "npm": ">=8.x"
64
+ },
65
+ "gitHead": "c3f6ff688812333f37f10d8a6cf00be88aa451a1"
60
66
  }
package/src/noModal.ts CHANGED
@@ -1,5 +1,5 @@
1
- import type { OPENLOGIN_NETWORK_TYPE } from "@toruslabs/openlogin";
2
1
  import { SafeEventEmitter } from "@toruslabs/openlogin-jrpc";
2
+ import type { OPENLOGIN_NETWORK_TYPE } from "@toruslabs/openlogin-utils";
3
3
  import {
4
4
  ADAPTER_EVENTS,
5
5
  ADAPTER_NAMESPACES,
@@ -23,6 +23,7 @@ import {
23
23
  Web3AuthError,
24
24
  } from "@web3auth/base";
25
25
  import { IPlugin, PLUGIN_NAMESPACES } from "@web3auth/base-plugin";
26
+ import { CommonJRPCProvider } from "@web3auth/base-provider";
26
27
 
27
28
  export interface Web3AuthNoModalOptions {
28
29
  /**
@@ -83,6 +84,8 @@ export class Web3AuthNoModal extends SafeEventEmitter implements IWeb3Auth {
83
84
 
84
85
  protected walletAdapters: Record<string, IAdapter<unknown>> = {};
85
86
 
87
+ protected commonJRPCProvider: CommonJRPCProvider | null = null;
88
+
86
89
  private plugins: Record<string, IPlugin> = {};
87
90
 
88
91
  private storage: "sessionStorage" | "localStorage" = "localStorage";
@@ -108,9 +111,8 @@ export class Web3AuthNoModal extends SafeEventEmitter implements IWeb3Auth {
108
111
  }
109
112
 
110
113
  get provider(): SafeEventEmitterProvider | null {
111
- if (this.status === ADAPTER_STATUS.CONNECTED && this.connectedAdapterName) {
112
- const adapter = this.walletAdapters[this.connectedAdapterName];
113
- return adapter.provider;
114
+ if (this.status !== ADAPTER_STATUS.NOT_READY && this.commonJRPCProvider) {
115
+ return this.commonJRPCProvider.provider;
114
116
  }
115
117
  return null;
116
118
  }
@@ -145,6 +147,7 @@ export class Web3AuthNoModal extends SafeEventEmitter implements IWeb3Auth {
145
147
 
146
148
  return this.walletAdapters[adapterName].init({ autoConnect: this.cachedAdapter === adapterName }).catch((e) => log.error(e));
147
149
  });
150
+ this.commonJRPCProvider = await CommonJRPCProvider.getProviderInstance({ chainConfig: this.coreOptions.chainConfig as CustomChainConfig });
148
151
  this.status = ADAPTER_STATUS.READY;
149
152
  await Promise.all(initPromises);
150
153
  }
@@ -193,13 +196,23 @@ export class Web3AuthNoModal extends SafeEventEmitter implements IWeb3Auth {
193
196
  }
194
197
 
195
198
  public async addChain(chainConfig: CustomChainConfig): Promise<void> {
196
- if (this.status !== ADAPTER_STATUS.CONNECTED || !this.connectedAdapterName) throw WalletLoginError.notConnectedError(`No wallet is connected`);
197
- return this.walletAdapters[this.connectedAdapterName].addChain(chainConfig);
199
+ if (this.status === ADAPTER_STATUS.CONNECTED && this.connectedAdapterName)
200
+ return this.walletAdapters[this.connectedAdapterName].addChain(chainConfig);
201
+
202
+ if (this.commonJRPCProvider) {
203
+ return this.commonJRPCProvider.addChain(chainConfig);
204
+ }
205
+ throw WalletInitializationError.notReady(`No wallet is ready`);
198
206
  }
199
207
 
200
208
  public async switchChain(params: { chainId: string }): Promise<void> {
201
- if (this.status !== ADAPTER_STATUS.CONNECTED || !this.connectedAdapterName) throw WalletLoginError.notConnectedError(`No wallet is connected`);
202
- return this.walletAdapters[this.connectedAdapterName].switchChain(params);
209
+ if (this.status === ADAPTER_STATUS.CONNECTED && this.connectedAdapterName)
210
+ return this.walletAdapters[this.connectedAdapterName].switchChain(params);
211
+
212
+ if (this.commonJRPCProvider) {
213
+ return this.commonJRPCProvider.switchChain(params);
214
+ }
215
+ throw WalletInitializationError.notReady(`No wallet is connected`);
203
216
  }
204
217
 
205
218
  /**
@@ -207,10 +220,11 @@ export class Web3AuthNoModal extends SafeEventEmitter implements IWeb3Auth {
207
220
  * @param walletName - Key of the walletAdapter to use.
208
221
  */
209
222
  async connectTo<T>(walletName: WALLET_ADAPTER_TYPE, loginParams?: T): Promise<SafeEventEmitterProvider | null> {
210
- if (!this.walletAdapters[walletName])
223
+ if (!this.walletAdapters[walletName] || !this.commonJRPCProvider)
211
224
  throw WalletInitializationError.notFound(`Please add wallet adapter for ${walletName} wallet, before connecting`);
212
225
  const provider = await this.walletAdapters[walletName].connect(loginParams);
213
- return provider;
226
+ this.commonJRPCProvider.updateProviderEngineProxy(provider as SafeEventEmitterProvider);
227
+ return this.provider;
214
228
  }
215
229
 
216
230
  async logout(options: { cleanup: boolean } = { cleanup: false }): Promise<void> {
@@ -242,6 +256,9 @@ export class Web3AuthNoModal extends SafeEventEmitter implements IWeb3Auth {
242
256
 
243
257
  protected subscribeToAdapterEvents(walletAdapter: IAdapter<unknown>): void {
244
258
  walletAdapter.on(ADAPTER_EVENTS.CONNECTED, async (data: CONNECTED_EVENT_DATA) => {
259
+ if (!this.commonJRPCProvider) throw WalletInitializationError.notFound(`CommonJrpcProvider not found`);
260
+ const { provider } = this.walletAdapters[data.adapter];
261
+ this.commonJRPCProvider.updateProviderEngineProxy(provider as SafeEventEmitterProvider);
245
262
  this.status = ADAPTER_STATUS.CONNECTED;
246
263
  this.connectedAdapterName = data.adapter;
247
264
  this.cacheWallet(data.adapter);