@web3auth/no-modal 10.0.0-alpha.2 → 10.0.0-beta.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.
Files changed (66) hide show
  1. package/dist/lib.cjs/base/chain/config.js +2 -1
  2. package/dist/lib.cjs/base/connector/constants.js +5 -0
  3. package/dist/lib.cjs/base/utils.js +3 -2
  4. package/dist/lib.cjs/base/wallet/index.js +2 -1
  5. package/dist/lib.cjs/connectors/auth-connector/authConnector.js +67 -19
  6. package/dist/lib.cjs/connectors/injected-solana-connector/walletStandardConnector.js +0 -1
  7. package/dist/lib.cjs/connectors/metamask-connector/metamaskConnector.js +197 -0
  8. package/dist/lib.cjs/connectors/utils.js +61 -0
  9. package/dist/lib.cjs/connectors/wallet-connect-v2-connector/WalletConnectV2Provider.js +0 -1
  10. package/dist/lib.cjs/connectors/wallet-connect-v2-connector/config.js +3 -58
  11. package/dist/lib.cjs/connectors/wallet-connect-v2-connector/walletConnectV2Connector.js +6 -16
  12. package/dist/lib.cjs/index.js +1 -2
  13. package/dist/lib.cjs/noModal.js +119 -29
  14. package/dist/lib.cjs/plugins/wallet-services-plugin/plugin.js +1 -1
  15. package/dist/lib.cjs/providers/account-abstraction-provider/providers/AccountAbstractionProvider.js +18 -12
  16. package/dist/lib.cjs/providers/solana-provider/rpc/solanaRpcMiddlewares.js +1 -1
  17. package/dist/lib.cjs/types/base/chain/IChainInterface.d.ts +3 -45
  18. package/dist/lib.cjs/types/base/connector/constants.d.ts +4 -0
  19. package/dist/lib.cjs/types/base/connector/interfaces.d.ts +7 -3
  20. package/dist/lib.cjs/types/base/core/IWeb3Auth.d.ts +10 -4
  21. package/dist/lib.cjs/types/base/interfaces.d.ts +66 -9
  22. package/dist/lib.cjs/types/base/utils.d.ts +2 -2
  23. package/dist/lib.cjs/types/base/wallet/index.d.ts +2 -0
  24. package/dist/lib.cjs/types/connectors/auth-connector/authConnector.d.ts +5 -2
  25. package/dist/lib.cjs/types/connectors/auth-connector/interface.d.ts +4 -2
  26. package/dist/lib.cjs/types/connectors/metamask-connector/index.d.ts +1 -0
  27. package/dist/lib.cjs/types/connectors/metamask-connector/metamaskConnector.d.ts +6 -0
  28. package/dist/lib.cjs/types/connectors/utils.d.ts +8 -0
  29. package/dist/lib.cjs/types/noModal.d.ts +5 -3
  30. package/dist/lib.cjs/types/providers/account-abstraction-provider/providers/AccountAbstractionProvider.d.ts +4 -5
  31. package/dist/lib.cjs/types/providers/solana-provider/providers/index.d.ts +0 -1
  32. package/dist/lib.esm/base/chain/config.js +2 -1
  33. package/dist/lib.esm/base/connector/constants.js +5 -1
  34. package/dist/lib.esm/base/utils.js +3 -2
  35. package/dist/lib.esm/base/wallet/index.js +2 -1
  36. package/dist/lib.esm/connectors/auth-connector/authConnector.js +67 -19
  37. package/dist/lib.esm/connectors/injected-solana-connector/walletStandardConnector.js +0 -1
  38. package/dist/lib.esm/connectors/metamask-connector/metamaskConnector.js +195 -0
  39. package/dist/lib.esm/connectors/utils.js +58 -0
  40. package/dist/lib.esm/connectors/wallet-connect-v2-connector/WalletConnectV2Provider.js +1 -2
  41. package/dist/lib.esm/connectors/wallet-connect-v2-connector/config.js +1 -56
  42. package/dist/lib.esm/connectors/wallet-connect-v2-connector/walletConnectV2Connector.js +6 -16
  43. package/dist/lib.esm/connectors/wallet-connect-v2-connector/walletConnectV2Utils.js +1 -1
  44. package/dist/lib.esm/index.js +1 -2
  45. package/dist/lib.esm/noModal.js +121 -31
  46. package/dist/lib.esm/plugins/wallet-services-plugin/plugin.js +1 -1
  47. package/dist/lib.esm/providers/account-abstraction-provider/providers/AccountAbstractionProvider.js +18 -12
  48. package/dist/lib.esm/providers/solana-provider/rpc/solanaRpcMiddlewares.js +1 -1
  49. package/dist/noModal.umd.min.js +1 -1
  50. package/package.json +5 -4
  51. package/dist/lib.cjs/connectors/auth-connector/config/authConnectionConfig.js +0 -216
  52. package/dist/lib.cjs/connectors/auth-connector/config/config-build.js +0 -54
  53. package/dist/lib.cjs/connectors/auth-connector/config/config-env.js +0 -361
  54. package/dist/lib.cjs/providers/solana-provider/providers/privateKeyProvider/solanaPrivateKeyProvider.js +0 -161
  55. package/dist/lib.cjs/providers/solana-provider/providers/privateKeyProvider/solanaPrivateKeyUtils.js +0 -104
  56. package/dist/lib.cjs/types/connectors/auth-connector/config/authConnectionConfig.d.ts +0 -2
  57. package/dist/lib.cjs/types/connectors/auth-connector/config/config-build.d.ts +0 -18
  58. package/dist/lib.cjs/types/connectors/auth-connector/config/config-env.d.ts +0 -60
  59. package/dist/lib.cjs/types/providers/solana-provider/providers/privateKeyProvider/index.d.ts +0 -1
  60. package/dist/lib.cjs/types/providers/solana-provider/providers/privateKeyProvider/solanaPrivateKeyProvider.d.ts +0 -30
  61. package/dist/lib.cjs/types/providers/solana-provider/providers/privateKeyProvider/solanaPrivateKeyUtils.d.ts +0 -7
  62. package/dist/lib.esm/connectors/auth-connector/config/authConnectionConfig.js +0 -214
  63. package/dist/lib.esm/connectors/auth-connector/config/config-build.js +0 -48
  64. package/dist/lib.esm/connectors/auth-connector/config/config-env.js +0 -359
  65. package/dist/lib.esm/providers/solana-provider/providers/privateKeyProvider/solanaPrivateKeyProvider.js +0 -159
  66. package/dist/lib.esm/providers/solana-provider/providers/privateKeyProvider/solanaPrivateKeyUtils.js +0 -102
@@ -1,12 +1,13 @@
1
1
  'use strict';
2
2
 
3
+ var _objectWithoutProperties = require('@babel/runtime/helpers/objectWithoutProperties');
3
4
  var _objectSpread = require('@babel/runtime/helpers/objectSpread2');
4
5
  var _defineProperty = require('@babel/runtime/helpers/defineProperty');
5
6
  var auth = require('@web3auth/auth');
7
+ var deepmerge = require('deepmerge');
6
8
  var authConnector = require('./connectors/auth-connector/authConnector.js');
7
- var config = require('./base/chain/config.js');
8
- var IChainInterface = require('./base/chain/IChainInterface.js');
9
9
  var index = require('./base/errors/index.js');
10
+ var IChainInterface = require('./base/chain/IChainInterface.js');
10
11
  var index$1 = require('./base/wallet/index.js');
11
12
  var constants = require('./base/connector/constants.js');
12
13
  var utils$1 = require('./base/connector/utils.js');
@@ -18,7 +19,9 @@ var baseControllers = require('@toruslabs/base-controllers');
18
19
  require('./providers/base-provider/utils.js');
19
20
  var CommonJRPCProvider = require('./providers/base-provider/CommonJRPCProvider.js');
20
21
  require('./providers/base-provider/commonPrivateKeyProvider.js');
22
+ var metamaskConnector = require('./connectors/metamask-connector/metamaskConnector.js');
21
23
 
24
+ const _excluded = ["walletScope"];
22
25
  const CONNECTOR_CACHE_KEY = "Web3Auth-cachedConnector";
23
26
  const CURRENT_CHAIN_CACHE_KEY = "Web3Auth-currentChain";
24
27
  class Web3AuthNoModal extends auth.SafeEventEmitter {
@@ -35,25 +38,13 @@ class Web3AuthNoModal extends auth.SafeEventEmitter {
35
38
  _defineProperty(this, "storage", "localStorage");
36
39
  if (!options.clientId) throw index.WalletInitializationError.invalidParams("Please provide a valid clientId in constructor");
37
40
  if (options.enableLogging) loglevel.log.enableAll();else loglevel.log.setLevel("error");
38
- // TODO: This is fine. we get chains from project config. we can throw in init instead
39
- if (!options.chains || options.chains.length === 0) {
40
- throw index.WalletInitializationError.invalidParams("Please provide chains");
41
- }
42
- const {
43
- chains
44
- } = options;
45
- // validate chain namespace of each chain config
46
- for (const chain of chains) {
47
- if (!chain.chainNamespace || !Object.values(baseControllers.CHAIN_NAMESPACES).includes(chain.chainNamespace)) throw index.WalletInitializationError.invalidParams("Please provide a valid chainNamespace in chains");
48
- }
49
41
  if (options.storageType === "session") this.storage = "sessionStorage";
50
- this.coreOptions = _objectSpread(_objectSpread({}, options), {}, {
51
- chains: chains.map(chain => _objectSpread(_objectSpread({}, config.getChainConfig(chain === null || chain === void 0 ? void 0 : chain.chainNamespace, chain === null || chain === void 0 ? void 0 : chain.chainId, options.clientId) || {}), chain))
52
- });
53
- this.currentChainId = options.defaultChainId || chains[0].chainId;
42
+ this.coreOptions = options;
43
+ this.currentChainId = options.defaultChainId;
54
44
  }
55
45
  get currentChain() {
56
- return this.coreOptions.chains.find(chain => chain.chainId === this.currentChainId);
46
+ var _this$coreOptions$cha;
47
+ return (_this$coreOptions$cha = this.coreOptions.chains) === null || _this$coreOptions$cha === void 0 ? void 0 : _this$coreOptions$cha.find(chain => chain.chainId === this.currentChainId);
57
48
  }
58
49
  get connected() {
59
50
  return Boolean(this.connectedConnector);
@@ -72,7 +63,6 @@ class Web3AuthNoModal extends auth.SafeEventEmitter {
72
63
  throw new Error("Not implemented");
73
64
  }
74
65
  async init() {
75
- this.initCachedConnectorAndChainId();
76
66
  // get project config
77
67
  let projectConfig;
78
68
  try {
@@ -82,6 +72,10 @@ class Web3AuthNoModal extends auth.SafeEventEmitter {
82
72
  loglevel.log.error("Failed to fetch project configurations", e);
83
73
  throw index.WalletInitializationError.notReady("failed to fetch project configurations", e);
84
74
  }
75
+ // init config
76
+ this.initAccountAbstractionConfig(projectConfig);
77
+ this.initChainsConfig(projectConfig);
78
+ this.initCachedConnectorAndChainId();
85
79
  // setup common JRPC provider
86
80
  await this.setupCommonJRPCProvider();
87
81
  // initialize connectors
@@ -118,7 +112,8 @@ class Web3AuthNoModal extends auth.SafeEventEmitter {
118
112
  this.cachedConnector = null;
119
113
  }
120
114
  async switchChain(params) {
121
- if (params.chainId === this.currentChain.chainId) return;
115
+ var _this$currentChain2;
116
+ if (params.chainId === ((_this$currentChain2 = this.currentChain) === null || _this$currentChain2 === void 0 ? void 0 : _this$currentChain2.chainId)) return;
122
117
  const newChainConfig = this.coreOptions.chains.find(x => x.chainId === params.chainId);
123
118
  if (!newChainConfig) throw index.WalletInitializationError.invalidParams("Invalid chainId");
124
119
  if (this.status === constants.CONNECTOR_STATUS.CONNECTED && this.connectedConnector) {
@@ -184,6 +179,89 @@ class Web3AuthNoModal extends auth.SafeEventEmitter {
184
179
  getPlugin(name) {
185
180
  return this.plugins[name] || null;
186
181
  }
182
+ initChainsConfig(projectConfig) {
183
+ // merge chains from project config with core options, core options chains will take precedence over project config chains
184
+ const chainMap = new Map();
185
+ const allChains = [...(projectConfig.chains || []), ...(this.coreOptions.chains || [])];
186
+ for (const chain of allChains) {
187
+ const existingChain = chainMap.get(chain.chainId);
188
+ if (!existingChain) chainMap.set(chain.chainId, chain);else chainMap.set(chain.chainId, _objectSpread(_objectSpread({}, existingChain), chain));
189
+ }
190
+ this.coreOptions.chains = Array.from(chainMap.values());
191
+ // validate chains and namespaces
192
+ if (this.coreOptions.chains.length === 0) {
193
+ loglevel.log.error("chain info not found. Please configure chains on dashboard at https://dashboard.web3auth.io");
194
+ throw index.WalletInitializationError.invalidParams("Please configure chains on dashboard at https://dashboard.web3auth.io");
195
+ }
196
+ const validChainNamespaces = new Set(Object.values(baseControllers.CHAIN_NAMESPACES));
197
+ for (const chain of this.coreOptions.chains) {
198
+ if (!chain.chainNamespace || !validChainNamespaces.has(chain.chainNamespace)) {
199
+ loglevel.log.error(`Please provide a valid chainNamespace in chains for chain ${chain.chainId}`);
200
+ throw index.WalletInitializationError.invalidParams(`Please provide a valid chainNamespace in chains for chain ${chain.chainId}`);
201
+ }
202
+ if (chain.chainNamespace !== baseControllers.CHAIN_NAMESPACES.OTHER && !utils.isHexStrict(chain.chainId)) {
203
+ loglevel.log.error(`Please provide a valid chainId in chains for chain ${chain.chainId}`);
204
+ throw index.WalletInitializationError.invalidParams(`Please provide a valid chainId as hex string in chains for chain ${chain.chainId}`);
205
+ }
206
+ if (chain.chainNamespace !== baseControllers.CHAIN_NAMESPACES.OTHER) {
207
+ try {
208
+ new URL(chain.rpcTarget);
209
+ } catch (error) {
210
+ // TODO: add support for chain.wsTarget
211
+ loglevel.log.error(`Please provide a valid rpcTarget in chains for chain ${chain.chainId}`, error);
212
+ throw index.WalletInitializationError.invalidParams(`Please provide a valid rpcTarget in chains for chain ${chain.chainId}`);
213
+ }
214
+ }
215
+ }
216
+ // if AA is enabled, filter out chains that are not AA-supported
217
+ if (this.coreOptions.accountAbstractionConfig) {
218
+ // write a for loop over accountAbstractionConfig.chains and check if the chainId is valid
219
+ for (const chain of this.coreOptions.accountAbstractionConfig.chains) {
220
+ if (!utils.isHexStrict(chain.chainId)) {
221
+ loglevel.log.error(`Please provide a valid chainId in accountAbstractionConfig.chains for chain ${chain.chainId}`);
222
+ throw index.WalletInitializationError.invalidParams(`Please provide a valid chainId in accountAbstractionConfig.chains for chain ${chain.chainId}`);
223
+ }
224
+ try {
225
+ var _chain$bundlerConfig;
226
+ new URL((_chain$bundlerConfig = chain.bundlerConfig) === null || _chain$bundlerConfig === void 0 ? void 0 : _chain$bundlerConfig.url);
227
+ } catch (error) {
228
+ loglevel.log.error(`Please provide a valid bundlerConfig.url in accountAbstractionConfig.chains for chain ${chain.chainId}`, error);
229
+ throw index.WalletInitializationError.invalidParams(`Please provide a valid bundlerConfig.url in accountAbstractionConfig.chains for chain ${chain.chainId}`);
230
+ }
231
+ if (!chainMap.has(chain.chainId)) {
232
+ loglevel.log.error(`Please provide chain config for AA chain in accountAbstractionConfig.chains for chain ${chain.chainId}`);
233
+ throw index.WalletInitializationError.invalidParams(`Please provide chain config for AA chain in accountAbstractionConfig.chains for chain ${chain.chainId}`);
234
+ }
235
+ }
236
+ // const aaSupportedChainIds = new Set(
237
+ // this.coreOptions.accountAbstractionConfig?.chains
238
+ // ?.filter((chain) => chain.chainId && chain.bundlerConfig?.url)
239
+ // .map((chain) => chain.chainId) || []
240
+ // );
241
+ // this.coreOptions.chains = this.coreOptions.chains.filter(
242
+ // (chain) => chain.chainNamespace !== CHAIN_NAMESPACES.EIP155 || aaSupportedChainIds.has(chain.chainId)
243
+ // );
244
+ // if (this.coreOptions.chains.length === 0) {
245
+ // log.error("Account Abstraction is enabled but no supported chains found");
246
+ // throw WalletInitializationError.invalidParams("Account Abstraction is enabled but no supported chains found");
247
+ // }
248
+ }
249
+ }
250
+ initAccountAbstractionConfig(projectConfig) {
251
+ const isAAEnabled = Boolean(this.coreOptions.accountAbstractionConfig || (projectConfig === null || projectConfig === void 0 ? void 0 : projectConfig.smartAccounts));
252
+ if (!isAAEnabled) return;
253
+ // merge project config with core options, code config take precedence over project config
254
+ const _ref = (projectConfig === null || projectConfig === void 0 ? void 0 : projectConfig.smartAccounts) || {},
255
+ {
256
+ walletScope
257
+ } = _ref,
258
+ configWithoutWalletScope = _objectWithoutProperties(_ref, _excluded);
259
+ this.coreOptions.accountAbstractionConfig = deepmerge(configWithoutWalletScope || {}, this.coreOptions.accountAbstractionConfig || {});
260
+ // determine if we should use AA with external wallet
261
+ if (this.coreOptions.useAAWithExternalWallet === undefined) {
262
+ this.coreOptions.useAAWithExternalWallet = walletScope === constants.SMART_ACCOUNT_WALLET_SCOPE.ALL;
263
+ }
264
+ }
187
265
  initCachedConnectorAndChainId() {
188
266
  this.cachedConnector = utils$1.storageAvailable(this.storage) ? window[this.storage].getItem(CONNECTOR_CACHE_KEY) : null;
189
267
  // init chainId using cached chainId if it exists and is valid, otherwise use the defaultChainId or the first chain
@@ -222,7 +300,8 @@ class Web3AuthNoModal extends auth.SafeEventEmitter {
222
300
  coreOptions: this.coreOptions
223
301
  };
224
302
  // add injected connectors
225
- const isMipdEnabled = (_this$coreOptions$mul = this.coreOptions.multiInjectedProviderDiscovery) !== null && _this$coreOptions$mul !== void 0 ? _this$coreOptions$mul : true;
303
+ const isExternalWalletEnabled = Boolean(projectConfig.externalWalletAuth);
304
+ const isMipdEnabled = isExternalWalletEnabled && ((_this$coreOptions$mul = this.coreOptions.multiInjectedProviderDiscovery) !== null && _this$coreOptions$mul !== void 0 ? _this$coreOptions$mul : true);
226
305
  const chainNamespaces = new Set(this.coreOptions.chains.map(chain => chain.chainNamespace));
227
306
  if (isMipdEnabled) {
228
307
  // Solana chains
@@ -255,8 +334,10 @@ class Web3AuthNoModal extends auth.SafeEventEmitter {
255
334
  connectorFns.push(...evmMipd.getProviders().map(injectedEvmConnector));
256
335
  }
257
336
  }
258
- // add WalletConnectV2 connector if enabled
259
- if (projectConfig.wallet_connect_enabled && projectConfig.wallet_connect_project_id && (chainNamespaces.has(baseControllers.CHAIN_NAMESPACES.SOLANA) || chainNamespaces.has(baseControllers.CHAIN_NAMESPACES.EIP155))) {
337
+ // it's safe to add it here as if there is a MetaMask injected provider, this won't override it
338
+ connectorFns.push(metamaskConnector.metaMaskConnector());
339
+ // add WalletConnectV2 connector if external wallets are enabled
340
+ if (isExternalWalletEnabled && (chainNamespaces.has(baseControllers.CHAIN_NAMESPACES.SOLANA) || chainNamespaces.has(baseControllers.CHAIN_NAMESPACES.EIP155))) {
260
341
  const {
261
342
  walletConnectV2Connector
262
343
  } = await Promise.resolve().then(function () { return require('./connectors/wallet-connect-v2-connector/index.js'); });
@@ -291,16 +372,24 @@ class Web3AuthNoModal extends auth.SafeEventEmitter {
291
372
  }
292
373
  subscribeToConnectorEvents(connector) {
293
374
  connector.on(constants.CONNECTOR_EVENTS.CONNECTED, async data => {
375
+ var _this$currentChain3, _accountAbstractionCo;
294
376
  if (!this.commonJRPCProvider) throw index.WalletInitializationError.notFound(`CommonJrpcProvider not found`);
295
377
  const {
296
378
  provider
297
379
  } = data;
298
380
  let finalProvider = provider.provider || provider;
299
- // setup aa provider for external wallets on EVM chains, for in app wallet, it uses WS provider which already supports AA
381
+ // setup AA provider for external wallets on EVM chains, no need for app wallet as it uses WS provider which already supports AA
300
382
  const {
301
383
  accountAbstractionConfig
302
384
  } = this.coreOptions;
303
- if (this.currentChain.chainNamespace === baseControllers.CHAIN_NAMESPACES.EIP155 && accountAbstractionConfig && data.connector !== index$1.WALLET_CONNECTORS.AUTH && this.coreOptions.useAAWithExternalWallet) {
385
+ const doesAASupportCurrentChain = ((_this$currentChain3 = this.currentChain) === null || _this$currentChain3 === void 0 ? void 0 : _this$currentChain3.chainNamespace) === baseControllers.CHAIN_NAMESPACES.EIP155 && (accountAbstractionConfig === null || accountAbstractionConfig === void 0 || (_accountAbstractionCo = accountAbstractionConfig.chains) === null || _accountAbstractionCo === void 0 ? void 0 : _accountAbstractionCo.some(chain => {
386
+ var _this$currentChain4;
387
+ return chain.chainId === ((_this$currentChain4 = this.currentChain) === null || _this$currentChain4 === void 0 ? void 0 : _this$currentChain4.chainId);
388
+ }));
389
+ const isExternalWalletAndAAEnabled = data.connector !== index$1.WALLET_CONNECTORS.AUTH && this.coreOptions.useAAWithExternalWallet;
390
+ if (isExternalWalletAndAAEnabled && doesAASupportCurrentChain) {
391
+ var _accountAbstractionCo2;
392
+ const aaChainIds = new Set((accountAbstractionConfig === null || accountAbstractionConfig === void 0 || (_accountAbstractionCo2 = accountAbstractionConfig.chains) === null || _accountAbstractionCo2 === void 0 ? void 0 : _accountAbstractionCo2.map(chain => chain.chainId)) || []);
304
393
  const {
305
394
  accountAbstractionProvider
306
395
  } = await Promise.resolve().then(function () { return require('./providers/account-abstraction-provider/index.js'); });
@@ -308,10 +397,9 @@ class Web3AuthNoModal extends auth.SafeEventEmitter {
308
397
  accountAbstractionConfig,
309
398
  provider,
310
399
  chain: this.currentChain,
311
- chains: this.coreOptions.chains
400
+ chains: this.coreOptions.chains.filter(chain => aaChainIds.has(chain.chainId))
312
401
  });
313
402
  finalProvider = aaProvider;
314
- // TODO: when switching chains to Solana or other chains, we need to switch to the non-AA provider
315
403
  }
316
404
  this.commonJRPCProvider.updateProviderEngineProxy(finalProvider);
317
405
  this.connectedConnectorName = data.connector;
@@ -378,8 +466,9 @@ class Web3AuthNoModal extends auth.SafeEventEmitter {
378
466
  * @throws WalletInitializationError If no chain is found for the connector's namespace
379
467
  */
380
468
  getInitialChainIdForConnector(connector) {
469
+ var _initialChain;
381
470
  let initialChain = this.currentChain;
382
- if (initialChain.chainNamespace !== connector.connectorNamespace && connector.connectorNamespace !== IChainInterface.CONNECTOR_NAMESPACES.MULTICHAIN) {
471
+ if (((_initialChain = initialChain) === null || _initialChain === void 0 ? void 0 : _initialChain.chainNamespace) !== connector.connectorNamespace && connector.connectorNamespace !== IChainInterface.CONNECTOR_NAMESPACES.MULTICHAIN) {
383
472
  initialChain = this.coreOptions.chains.find(x => x.chainNamespace === connector.connectorNamespace);
384
473
  if (!initialChain) throw index.WalletInitializationError.invalidParams(`No chain found for ${connector.connectorNamespace}`);
385
474
  }
@@ -405,10 +494,11 @@ class Web3AuthNoModal extends auth.SafeEventEmitter {
405
494
  connectToPlugins(data) {
406
495
  Object.values(this.plugins).map(async plugin => {
407
496
  try {
497
+ var _this$currentChain5;
408
498
  // skip if it's not compatible with the connector
409
499
  if (!plugin.SUPPORTED_CONNECTORS.includes("all") && !plugin.SUPPORTED_CONNECTORS.includes(data.connector)) return;
410
500
  // skip if it's not compatible with the current chain
411
- if (plugin.pluginNamespace !== IPlugin.PLUGIN_NAMESPACES.MULTICHAIN && plugin.pluginNamespace !== this.currentChain.chainNamespace) return;
501
+ if (plugin.pluginNamespace !== IPlugin.PLUGIN_NAMESPACES.MULTICHAIN && plugin.pluginNamespace !== ((_this$currentChain5 = this.currentChain) === null || _this$currentChain5 === void 0 ? void 0 : _this$currentChain5.chainNamespace)) return;
412
502
  // skip if it's already connected
413
503
  if (plugin.status === IPlugin.PLUGIN_STATUS.CONNECTED) return;
414
504
  await plugin.initWithWeb3Auth(this, this.coreOptions.uiConfig);
@@ -36,7 +36,7 @@ class WalletServicesPlugin extends auth.SafeEventEmitter {
36
36
  if (!web3auth) throw errors.WalletServicesPluginError.web3authRequired();
37
37
  if (web3auth.provider && !this.SUPPORTED_CONNECTORS.includes(web3auth.connectedConnectorName)) throw errors.WalletServicesPluginError.notInitialized();
38
38
  const currentChainConfig = web3auth.currentChain;
39
- if (![baseControllers.CHAIN_NAMESPACES.EIP155, baseControllers.CHAIN_NAMESPACES.SOLANA].includes(currentChainConfig.chainNamespace)) throw errors.WalletServicesPluginError.unsupportedChainNamespace();
39
+ if (![baseControllers.CHAIN_NAMESPACES.EIP155, baseControllers.CHAIN_NAMESPACES.SOLANA].includes(currentChainConfig === null || currentChainConfig === void 0 ? void 0 : currentChainConfig.chainNamespace)) throw errors.WalletServicesPluginError.unsupportedChainNamespace();
40
40
  // Not connected yet to auth
41
41
  if (web3auth.provider) {
42
42
  this.provider = web3auth.provider;
@@ -65,7 +65,7 @@ class AccountAbstractionProvider extends baseProvider.BaseProvider {
65
65
  });
66
66
  }
67
67
  async setupProvider(eoaProvider) {
68
- var _this$config$bundlerC;
68
+ var _bundlerConfig$transp;
69
69
  const {
70
70
  currentChain
71
71
  } = this;
@@ -73,6 +73,12 @@ class AccountAbstractionProvider extends baseProvider.BaseProvider {
73
73
  chainNamespace
74
74
  } = currentChain;
75
75
  if (chainNamespace !== this.PROVIDER_CHAIN_NAMESPACE) throw index.WalletInitializationError.incompatibleChainNameSpace("Invalid chain namespace");
76
+ const bundlerAndPaymasterConfig = this.config.smartAccountChainsConfig.find(config => config.chainId === currentChain.chainId);
77
+ if (!bundlerAndPaymasterConfig) throw index.WalletInitializationError.invalidProviderConfigError(`Bundler and paymaster config not found for chain ${currentChain.chainId}`);
78
+ const {
79
+ bundlerConfig,
80
+ paymasterConfig
81
+ } = bundlerAndPaymasterConfig;
76
82
  const chain = viem.defineChain({
77
83
  id: Number.parseInt(currentChain.chainId, 16),
78
84
  // id in number form
@@ -106,16 +112,16 @@ class AccountAbstractionProvider extends baseProvider.BaseProvider {
106
112
  client: this._publicClient
107
113
  });
108
114
  // setup bundler and paymaster
109
- if (this.config.paymasterConfig) {
110
- var _this$config$paymaste;
111
- this._paymasterClient = accountAbstraction.createPaymasterClient(_objectSpread(_objectSpread({}, this.config.paymasterConfig), {}, {
112
- transport: (_this$config$paymaste = this.config.paymasterConfig.transport) !== null && _this$config$paymaste !== void 0 ? _this$config$paymaste : viem.http(this.config.paymasterConfig.url)
115
+ if (paymasterConfig) {
116
+ var _paymasterConfig$tran;
117
+ this._paymasterClient = accountAbstraction.createPaymasterClient(_objectSpread(_objectSpread({}, paymasterConfig), {}, {
118
+ transport: (_paymasterConfig$tran = paymasterConfig.transport) !== null && _paymasterConfig$tran !== void 0 ? _paymasterConfig$tran : viem.http(paymasterConfig.url)
113
119
  }));
114
120
  }
115
- this._bundlerClient = accountAbstraction.createBundlerClient(_objectSpread(_objectSpread({}, this.config.bundlerConfig), {}, {
121
+ this._bundlerClient = accountAbstraction.createBundlerClient(_objectSpread(_objectSpread({}, bundlerConfig), {}, {
116
122
  account: this.smartAccount,
117
123
  client: this._publicClient,
118
- transport: (_this$config$bundlerC = this.config.bundlerConfig.transport) !== null && _this$config$bundlerC !== void 0 ? _this$config$bundlerC : viem.http(this.config.bundlerConfig.url),
124
+ transport: (_bundlerConfig$transp = bundlerConfig.transport) !== null && _bundlerConfig$transp !== void 0 ? _bundlerConfig$transp : viem.http(bundlerConfig.url),
119
125
  paymaster: this._paymasterClient
120
126
  }));
121
127
  const providerHandlers = utils.getProviderHandlers({
@@ -176,10 +182,11 @@ const accountAbstractionProvider = async ({
176
182
  let smartAccountInit;
177
183
  const {
178
184
  smartAccountType,
179
- smartAccountConfig,
180
- bundlerConfig,
181
- paymasterConfig
185
+ chains: smartAccountChainsConfig
182
186
  } = accountAbstractionConfig;
187
+ const {
188
+ smartAccountConfig
189
+ } = smartAccountChainsConfig.find(config => config.chainId === chain.chainId) || {};
183
190
  switch (smartAccountType) {
184
191
  case ethereumControllers.SMART_ACCOUNT.BICONOMY:
185
192
  {
@@ -229,8 +236,7 @@ const accountAbstractionProvider = async ({
229
236
  smartAccountInit,
230
237
  chain,
231
238
  chains,
232
- bundlerConfig,
233
- paymasterConfig
239
+ smartAccountChainsConfig
234
240
  });
235
241
  };
236
242
 
@@ -75,7 +75,7 @@ function createSolanaMiddleware(providerHandlers) {
75
75
  requestAccounts
76
76
  }), createGetAccountsMiddleware({
77
77
  getAccounts
78
- }), createGenericJRPCMiddleware(wsEmbed.SOLANA_METHOD_TYPES.SIGN_TRANSACTION, signTransaction), createGenericJRPCMiddleware(wsEmbed.SOLANA_METHOD_TYPES.SEND_TRANSACTION, signAndSendTransaction), createGenericJRPCMiddleware(wsEmbed.SOLANA_METHOD_TYPES.SIGN_ALL_TRANSACTIONS, signAllTransactions), createGenericJRPCMiddleware(wsEmbed.SOLANA_METHOD_TYPES.SIGN_MESSAGE, signMessage), createGenericJRPCMiddleware("solanaPrivateKey", getPrivateKey), createGenericJRPCMiddleware("private_key", getPrivateKey), createGenericJRPCMiddleware("public_key", getPublicKey), createGenericJRPCMiddleware("solanaPublicKey", getPublicKey), createGenericJRPCMiddleware("solanaSecretKey", getSecretKey)]);
78
+ }), createGenericJRPCMiddleware(wsEmbed.SOLANA_METHOD_TYPES.SIGN_TRANSACTION, signTransaction), createGenericJRPCMiddleware(wsEmbed.SOLANA_METHOD_TYPES.SEND_TRANSACTION, signAndSendTransaction), createGenericJRPCMiddleware(wsEmbed.SOLANA_METHOD_TYPES.SIGN_ALL_TRANSACTIONS, signAllTransactions), createGenericJRPCMiddleware(wsEmbed.SOLANA_METHOD_TYPES.SIGN_MESSAGE, signMessage), createGenericJRPCMiddleware(wsEmbed.SOLANA_METHOD_TYPES.SOLANA_PRIVATE_KEY, getPrivateKey), createGenericJRPCMiddleware(wsEmbed.SOLANA_METHOD_TYPES.PRIVATE_KEY, getPrivateKey), createGenericJRPCMiddleware("public_key", getPublicKey), createGenericJRPCMiddleware("solanaPublicKey", getPublicKey), createGenericJRPCMiddleware("solanaSecretKey", getSecretKey)]);
79
79
  }
80
80
  function createSolanaChainSwitchMiddleware({
81
81
  switchSolanaChain
@@ -1,5 +1,4 @@
1
- import { CHAIN_NAMESPACES, type ChainNamespaceType } from "@toruslabs/base-controllers";
2
- export { CHAIN_NAMESPACES, type ChainNamespaceType };
1
+ import { CHAIN_NAMESPACES, type ChainNamespaceType, type ProviderConfig } from "@toruslabs/base-controllers";
3
2
  export declare const CONNECTOR_NAMESPACES: {
4
3
  readonly EIP155: "eip155";
5
4
  readonly SOLANA: "solana";
@@ -8,46 +7,5 @@ export declare const CONNECTOR_NAMESPACES: {
8
7
  readonly MULTICHAIN: "multichain";
9
8
  };
10
9
  export type ConnectorNamespaceType = (typeof CONNECTOR_NAMESPACES)[keyof typeof CONNECTOR_NAMESPACES];
11
- export type CustomChainConfig = {
12
- chainNamespace: ChainNamespaceType;
13
- /**
14
- * The chain id of the chain
15
- */
16
- chainId: string;
17
- /**
18
- * RPC target Url for the chain
19
- */
20
- rpcTarget: string;
21
- /**
22
- * web socket target Url for the chain
23
- */
24
- wsTarget?: string;
25
- /**
26
- * Display Name for the chain
27
- */
28
- displayName?: string;
29
- /**
30
- * Url of the block explorer
31
- */
32
- blockExplorerUrl?: string;
33
- /**
34
- * Default currency ticker of the network (e.g: ETH)
35
- */
36
- ticker?: string;
37
- /**
38
- * Name for currency ticker (e.g: `Ethereum`)
39
- */
40
- tickerName?: string;
41
- /**
42
- * Number of decimals for the currency ticker (e.g: 18)
43
- */
44
- decimals?: number;
45
- /**
46
- * Logo for the token
47
- */
48
- logo?: string;
49
- /**
50
- * Whether the network is testnet or not
51
- */
52
- isTestnet?: boolean;
53
- };
10
+ export { CHAIN_NAMESPACES, type ChainNamespaceType };
11
+ export type CustomChainConfig = ProviderConfig;
@@ -23,3 +23,7 @@ export declare const CONNECTOR_CATEGORY: {
23
23
  readonly EXTERNAL: "external";
24
24
  readonly IN_APP: "in_app";
25
25
  };
26
+ export declare const SMART_ACCOUNT_WALLET_SCOPE: {
27
+ readonly EMBEDDED: "embedded";
28
+ readonly ALL: "all";
29
+ };
@@ -1,8 +1,8 @@
1
- import { AUTH_CONNECTION_TYPE, AuthUserInfo, JRPCRequest, JRPCResponse, Maybe, RequestArguments, SafeEventEmitter, SendCallBack, UX_MODE, type UX_MODE_TYPE, WEB3AUTH_NETWORK, type WEB3AUTH_NETWORK_TYPE } from "@web3auth/auth";
1
+ import { AUTH_CONNECTION_TYPE, AuthUserInfo, ExtraLoginOptions, JRPCRequest, JRPCResponse, Maybe, RequestArguments, SafeEventEmitter, SendCallBack, UX_MODE, type UX_MODE_TYPE, WEB3AUTH_NETWORK, type WEB3AUTH_NETWORK_TYPE } from "@web3auth/auth";
2
2
  import { ConnectorNamespaceType, CustomChainConfig } from "../chain/IChainInterface";
3
3
  import { IWeb3AuthCoreOptions } from "../core/IWeb3Auth";
4
4
  import { Web3AuthError } from "../errors";
5
- import { PROJECT_CONFIG_RESPONSE } from "../interfaces";
5
+ import { ProjectConfig } from "../interfaces";
6
6
  import { ProviderEvents, SafeEventEmitterProvider } from "../provider/IProvider";
7
7
  import { CONNECTOR_CATEGORY, CONNECTOR_EVENTS, CONNECTOR_STATUS } from "./constants";
8
8
  export type UserInfo = AuthUserInfo;
@@ -67,7 +67,7 @@ export interface IConnector<T> extends SafeEventEmitter {
67
67
  authenticateUser(): Promise<UserAuthInfo>;
68
68
  }
69
69
  export type ConnectorParams = {
70
- projectConfig?: PROJECT_CONFIG_RESPONSE;
70
+ projectConfig?: ProjectConfig;
71
71
  coreOptions: IWeb3AuthCoreOptions;
72
72
  };
73
73
  export type ConnectorFn = (params: ConnectorParams) => IConnector<unknown>;
@@ -147,6 +147,10 @@ export type LoginMethodConfig = Partial<Record<AUTH_CONNECTION_TYPE, {
147
147
  * Grouped auth connection id of the provider.
148
148
  */
149
149
  groupedAuthConnectionId?: string;
150
+ /**
151
+ * ExtraLoginOption params to be used for social login.
152
+ */
153
+ extraLoginOptions?: ExtraLoginOptions;
150
154
  }>>;
151
155
  export type WalletConnectV2Data = {
152
156
  uri: string;
@@ -1,5 +1,5 @@
1
- import { type AccountAbstractionConfig } from "@toruslabs/ethereum-controllers";
2
- import { SafeEventEmitter, UX_MODE_TYPE, type WhiteLabelData } from "@web3auth/auth";
1
+ import { type AccountAbstractionMultiChainConfig } from "@toruslabs/ethereum-controllers";
2
+ import { type BUILD_ENV_TYPE, SafeEventEmitter, UX_MODE_TYPE, type WhiteLabelData } from "@web3auth/auth";
3
3
  import { type WsEmbedParams } from "@web3auth/ws-embed";
4
4
  import { type CustomChainConfig } from "../chain/IChainInterface";
5
5
  import { CONNECTOR_EVENTS, type CONNECTOR_STATUS_TYPE, ConnectorEvents, type ConnectorFn, type IBaseProvider, type IConnector, type IProvider, type UserAuthInfo, type UserInfo, type WEB3AUTH_NETWORK_TYPE } from "../connector";
@@ -78,7 +78,7 @@ export interface IWeb3AuthCoreOptions {
78
78
  /**
79
79
  * Account abstraction config for your chain namespace
80
80
  */
81
- accountAbstractionConfig?: AccountAbstractionConfig;
81
+ accountAbstractionConfig?: AccountAbstractionMultiChainConfig;
82
82
  /**
83
83
  * Whether to use AA with external wallet
84
84
  */
@@ -104,11 +104,17 @@ export interface IWeb3AuthCoreOptions {
104
104
  * Private key provider for xrpl, mpc cases
105
105
  */
106
106
  privateKeyProvider?: IBaseProvider<string>;
107
+ /**
108
+ * Build environment for Auth connector
109
+ * @internal
110
+ * @defaultValue BUILD_ENV.PRODUCTION
111
+ */
112
+ authBuildEnv?: BUILD_ENV_TYPE;
107
113
  }
108
114
  export interface IWeb3AuthCore extends SafeEventEmitter {
109
115
  readonly coreOptions: IWeb3AuthCoreOptions;
110
116
  connectedConnectorName: string | null;
111
- currentChain: CustomChainConfig;
117
+ currentChain: CustomChainConfig | undefined;
112
118
  status: CONNECTOR_STATUS_TYPE;
113
119
  provider: IProvider | null;
114
120
  init(): Promise<void>;
@@ -1,17 +1,74 @@
1
- import { AuthConnectionConfig, WhiteLabelData } from "@web3auth/auth";
2
- import { ChainNamespaceType } from "./chain/IChainInterface";
1
+ import { type BUTTON_POSITION_TYPE } from "@toruslabs/base-controllers";
2
+ import { type SmartAccountType } from "@toruslabs/ethereum-controllers";
3
+ import { AuthConnectionConfigItem, type WhiteLabelData } from "@web3auth/auth";
4
+ import { type ChainNamespaceType, type CustomChainConfig } from "./chain/IChainInterface";
5
+ import { SMART_ACCOUNT_WALLET_SCOPE } from "./connector";
3
6
  export interface WhitelistResponse {
4
7
  urls: string[];
5
8
  signed_urls: Record<string, string>;
6
9
  }
7
- export interface PROJECT_CONFIG_RESPONSE {
8
- whitelabel?: WhiteLabelData;
9
- sms_otp_enabled: boolean;
10
- wallet_connect_enabled: boolean;
11
- wallet_connect_project_id?: string;
10
+ export type ChainsConfig = CustomChainConfig[];
11
+ export interface ExternalWalletsConfig {
12
+ disableAllRecommendedWallets?: boolean;
13
+ disableAllOtherWallets?: boolean;
14
+ disabledWallets?: string[];
15
+ }
16
+ export type SmartAccountWalletScope = (typeof SMART_ACCOUNT_WALLET_SCOPE)[keyof typeof SMART_ACCOUNT_WALLET_SCOPE];
17
+ export interface SmartAccountsConfig {
18
+ smartAccountType: SmartAccountType;
19
+ walletScope: SmartAccountWalletScope;
20
+ chains: {
21
+ chainId: string;
22
+ bundlerConfig: {
23
+ url: string;
24
+ };
25
+ paymasterConfig?: {
26
+ url: string;
27
+ };
28
+ }[];
29
+ }
30
+ export interface WalletUiConfig {
31
+ enablePortfolioWidget?: boolean;
32
+ enableConfirmationModal?: boolean;
33
+ enableWalletConnect?: boolean;
34
+ enableTokenDisplay?: boolean;
35
+ enableNftDisplay?: boolean;
36
+ enableShowAllTokensButton?: boolean;
37
+ enableBuyButton?: boolean;
38
+ enableSendButton?: boolean;
39
+ enableSwapButton?: boolean;
40
+ enableReceiveButton?: boolean;
41
+ portfolioWidgetPosition?: BUTTON_POSITION_TYPE;
42
+ defaultPortfolio?: "token" | "nft";
43
+ }
44
+ export interface LoginModalConfig {
45
+ widgetType?: "embed" | "modal";
46
+ logoAlignment?: "left" | "center";
47
+ borderRadiusType?: "small" | "medium" | "large";
48
+ buttonRadiusType?: "pill" | "rounded" | "square";
49
+ tncLink?: string;
50
+ privacyPolicy?: string;
51
+ enableMainSocialLoginButton?: boolean;
52
+ signInMethods?: ("social" | "passwordless" | "externalWallets")[];
53
+ addPreviousLoginHint?: boolean;
54
+ displayInstalledExternalWallets?: boolean;
55
+ displayExternalWalletsCount?: boolean;
56
+ }
57
+ export interface ProjectConfig {
58
+ userDataIncludedInToken?: boolean;
59
+ sessionTime?: number;
60
+ enableKeyExport?: boolean;
61
+ walletConnectProjectId?: string;
12
62
  whitelist?: WhitelistResponse;
13
- key_export_enabled?: boolean;
14
- auth_connection_config?: AuthConnectionConfig;
63
+ chains?: ChainsConfig;
64
+ smartAccounts?: SmartAccountsConfig;
65
+ walletUi?: WalletUiConfig;
66
+ externalWalletAuth?: ExternalWalletsConfig;
67
+ embeddedWalletAuth?: (AuthConnectionConfigItem & {
68
+ isDefault?: boolean;
69
+ })[];
70
+ whitelabel?: WhiteLabelData;
71
+ loginModal?: LoginModalConfig;
15
72
  }
16
73
  export interface WalletRegistryItem {
17
74
  name: string;
@@ -1,9 +1,9 @@
1
1
  import { cloneDeep } from "@toruslabs/base-controllers";
2
2
  import { type WEB3AUTH_NETWORK_TYPE } from "./connector";
3
- import type { PROJECT_CONFIG_RESPONSE, WalletRegistry } from "./interfaces";
3
+ import type { ProjectConfig, WalletRegistry } from "./interfaces";
4
4
  export declare const isHexStrict: (hex: string) => boolean;
5
5
  export declare const signerHost: (web3AuthNetwork?: WEB3AUTH_NETWORK_TYPE) => string;
6
- export declare const fetchProjectConfig: (clientId: string, web3AuthNetwork: WEB3AUTH_NETWORK_TYPE, aaProvider?: string) => Promise<PROJECT_CONFIG_RESPONSE>;
6
+ export declare const fetchProjectConfig: (clientId: string, web3AuthNetwork: WEB3AUTH_NETWORK_TYPE, aaProvider?: string) => Promise<ProjectConfig>;
7
7
  export declare const fetchWalletRegistry: (url?: string) => Promise<WalletRegistry>;
8
8
  export declare const normalizeWalletName: (name: string) => string;
9
9
  export { cloneDeep };
@@ -13,12 +13,14 @@ export declare const EVM_CONNECTORS: {
13
13
  WALLET_CONNECT_V2: string;
14
14
  SFA: string;
15
15
  COINBASE: string;
16
+ METAMASK: string;
16
17
  };
17
18
  export declare const WALLET_CONNECTORS: {
18
19
  AUTH: string;
19
20
  WALLET_CONNECT_V2: string;
20
21
  SFA: string;
21
22
  COINBASE: string;
23
+ METAMASK: string;
22
24
  };
23
25
  export type WALLET_CONNECTOR_TYPE = (typeof WALLET_CONNECTORS)[keyof typeof WALLET_CONNECTORS];
24
26
  export type SOLANA_CONNECTOR_TYPE = (typeof SOLANA_CONNECTORS)[keyof typeof SOLANA_CONNECTORS];
@@ -1,4 +1,4 @@
1
- import { Auth, LoginParams } from "@web3auth/auth";
1
+ import { Auth, type LoginParams } from "@web3auth/auth";
2
2
  import { type default as WsEmbed } from "@web3auth/ws-embed";
3
3
  import { BaseConnector, CONNECTOR_CATEGORY_TYPE, CONNECTOR_STATUS_TYPE, ConnectorFn, ConnectorInitOptions, ConnectorNamespaceType, IProvider, UserInfo } from "../../base";
4
4
  import type { AuthConnectorOptions, PrivateKeyProvider } from "./interface";
@@ -44,6 +44,9 @@ declare class AuthConnector extends BaseConnector<AuthLoginParams> {
44
44
  private connectWithJwtLogin;
45
45
  private getOAuthProviderConfig;
46
46
  }
47
- export declare const authConnector: (params?: Omit<AuthConnectorOptions, "coreOptions" | "authConnectionConfig">) => ConnectorFn;
47
+ type AuthConnectorFuncParams = Omit<AuthConnectorOptions, "coreOptions" | "authConnectionConfig" | "connectorSettings"> & {
48
+ connectorSettings?: Omit<AuthConnectorOptions["connectorSettings"], "buildEnv">;
49
+ };
50
+ export declare const authConnector: (params?: AuthConnectorFuncParams) => ConnectorFn;
48
51
  export type AuthConnectorType = AuthConnector;
49
52
  export {};
@@ -1,4 +1,4 @@
1
- import { AuthConnectionConfig, type AuthOptions, type LoginParams } from "@web3auth/auth";
1
+ import { type AuthConnectionConfigItem, type AuthOptions, type LoginParams } from "@web3auth/auth";
2
2
  import { type WsEmbedParams } from "@web3auth/ws-embed";
3
3
  import { type BaseConnectorSettings, type IBaseProvider } from "../../base";
4
4
  export type LoginSettings = Partial<LoginParams>;
@@ -10,6 +10,8 @@ export interface AuthConnectorOptions extends BaseConnectorSettings {
10
10
  connectorSettings?: Omit<AuthOptions, "clientId" | "network" | "authConnectionConfig">;
11
11
  loginSettings?: LoginSettings;
12
12
  walletServicesSettings?: WalletServicesSettings;
13
- authConnectionConfig?: AuthConnectionConfig;
13
+ authConnectionConfig?: (AuthConnectionConfigItem & {
14
+ isDefault?: boolean;
15
+ })[];
14
16
  }
15
17
  export { AUTH_CONNECTION, type AUTH_CONNECTION_TYPE, type AuthConnectionConfig, type AuthOptions, type AuthUserInfo, type LoginParams, } from "@web3auth/auth";
@@ -0,0 +1 @@
1
+ export { metaMaskConnector } from "./metamaskConnector";
@@ -0,0 +1,6 @@
1
+ import { type MetaMaskSDKOptions } from "@metamask/sdk";
2
+ import { type BaseConnectorSettings, type ConnectorFn } from "../../base";
3
+ export interface MetaMaskConnectorOptions extends BaseConnectorSettings {
4
+ connectorSettings?: MetaMaskSDKOptions;
5
+ }
6
+ export declare const metaMaskConnector: (params?: MetaMaskSDKOptions) => ConnectorFn;