@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.
- package/dist/lib.cjs/base/chain/config.js +2 -1
- package/dist/lib.cjs/base/connector/constants.js +5 -0
- package/dist/lib.cjs/base/utils.js +3 -2
- package/dist/lib.cjs/base/wallet/index.js +2 -1
- package/dist/lib.cjs/connectors/auth-connector/authConnector.js +67 -19
- package/dist/lib.cjs/connectors/injected-solana-connector/walletStandardConnector.js +0 -1
- package/dist/lib.cjs/connectors/metamask-connector/metamaskConnector.js +197 -0
- package/dist/lib.cjs/connectors/utils.js +61 -0
- package/dist/lib.cjs/connectors/wallet-connect-v2-connector/WalletConnectV2Provider.js +0 -1
- package/dist/lib.cjs/connectors/wallet-connect-v2-connector/config.js +3 -58
- package/dist/lib.cjs/connectors/wallet-connect-v2-connector/walletConnectV2Connector.js +6 -16
- package/dist/lib.cjs/index.js +1 -2
- package/dist/lib.cjs/noModal.js +119 -29
- package/dist/lib.cjs/plugins/wallet-services-plugin/plugin.js +1 -1
- package/dist/lib.cjs/providers/account-abstraction-provider/providers/AccountAbstractionProvider.js +18 -12
- package/dist/lib.cjs/providers/solana-provider/rpc/solanaRpcMiddlewares.js +1 -1
- package/dist/lib.cjs/types/base/chain/IChainInterface.d.ts +3 -45
- package/dist/lib.cjs/types/base/connector/constants.d.ts +4 -0
- package/dist/lib.cjs/types/base/connector/interfaces.d.ts +7 -3
- package/dist/lib.cjs/types/base/core/IWeb3Auth.d.ts +10 -4
- package/dist/lib.cjs/types/base/interfaces.d.ts +66 -9
- package/dist/lib.cjs/types/base/utils.d.ts +2 -2
- package/dist/lib.cjs/types/base/wallet/index.d.ts +2 -0
- package/dist/lib.cjs/types/connectors/auth-connector/authConnector.d.ts +5 -2
- package/dist/lib.cjs/types/connectors/auth-connector/interface.d.ts +4 -2
- package/dist/lib.cjs/types/connectors/metamask-connector/index.d.ts +1 -0
- package/dist/lib.cjs/types/connectors/metamask-connector/metamaskConnector.d.ts +6 -0
- package/dist/lib.cjs/types/connectors/utils.d.ts +8 -0
- package/dist/lib.cjs/types/noModal.d.ts +5 -3
- package/dist/lib.cjs/types/providers/account-abstraction-provider/providers/AccountAbstractionProvider.d.ts +4 -5
- package/dist/lib.cjs/types/providers/solana-provider/providers/index.d.ts +0 -1
- package/dist/lib.esm/base/chain/config.js +2 -1
- package/dist/lib.esm/base/connector/constants.js +5 -1
- package/dist/lib.esm/base/utils.js +3 -2
- package/dist/lib.esm/base/wallet/index.js +2 -1
- package/dist/lib.esm/connectors/auth-connector/authConnector.js +67 -19
- package/dist/lib.esm/connectors/injected-solana-connector/walletStandardConnector.js +0 -1
- package/dist/lib.esm/connectors/metamask-connector/metamaskConnector.js +195 -0
- package/dist/lib.esm/connectors/utils.js +58 -0
- package/dist/lib.esm/connectors/wallet-connect-v2-connector/WalletConnectV2Provider.js +1 -2
- package/dist/lib.esm/connectors/wallet-connect-v2-connector/config.js +1 -56
- package/dist/lib.esm/connectors/wallet-connect-v2-connector/walletConnectV2Connector.js +6 -16
- package/dist/lib.esm/connectors/wallet-connect-v2-connector/walletConnectV2Utils.js +1 -1
- package/dist/lib.esm/index.js +1 -2
- package/dist/lib.esm/noModal.js +121 -31
- package/dist/lib.esm/plugins/wallet-services-plugin/plugin.js +1 -1
- package/dist/lib.esm/providers/account-abstraction-provider/providers/AccountAbstractionProvider.js +18 -12
- package/dist/lib.esm/providers/solana-provider/rpc/solanaRpcMiddlewares.js +1 -1
- package/dist/noModal.umd.min.js +1 -1
- package/package.json +5 -4
- package/dist/lib.cjs/connectors/auth-connector/config/authConnectionConfig.js +0 -216
- package/dist/lib.cjs/connectors/auth-connector/config/config-build.js +0 -54
- package/dist/lib.cjs/connectors/auth-connector/config/config-env.js +0 -361
- package/dist/lib.cjs/providers/solana-provider/providers/privateKeyProvider/solanaPrivateKeyProvider.js +0 -161
- package/dist/lib.cjs/providers/solana-provider/providers/privateKeyProvider/solanaPrivateKeyUtils.js +0 -104
- package/dist/lib.cjs/types/connectors/auth-connector/config/authConnectionConfig.d.ts +0 -2
- package/dist/lib.cjs/types/connectors/auth-connector/config/config-build.d.ts +0 -18
- package/dist/lib.cjs/types/connectors/auth-connector/config/config-env.d.ts +0 -60
- package/dist/lib.cjs/types/providers/solana-provider/providers/privateKeyProvider/index.d.ts +0 -1
- package/dist/lib.cjs/types/providers/solana-provider/providers/privateKeyProvider/solanaPrivateKeyProvider.d.ts +0 -30
- package/dist/lib.cjs/types/providers/solana-provider/providers/privateKeyProvider/solanaPrivateKeyUtils.d.ts +0 -7
- package/dist/lib.esm/connectors/auth-connector/config/authConnectionConfig.js +0 -214
- package/dist/lib.esm/connectors/auth-connector/config/config-build.js +0 -48
- package/dist/lib.esm/connectors/auth-connector/config/config-env.js +0 -359
- package/dist/lib.esm/providers/solana-provider/providers/privateKeyProvider/solanaPrivateKeyProvider.js +0 -159
- package/dist/lib.esm/providers/solana-provider/providers/privateKeyProvider/solanaPrivateKeyUtils.js +0 -102
package/dist/lib.cjs/noModal.js
CHANGED
|
@@ -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 =
|
|
51
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
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
|
|
259
|
-
|
|
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
|
|
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
|
-
|
|
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;
|
package/dist/lib.cjs/providers/account-abstraction-provider/providers/AccountAbstractionProvider.js
CHANGED
|
@@ -65,7 +65,7 @@ class AccountAbstractionProvider extends baseProvider.BaseProvider {
|
|
|
65
65
|
});
|
|
66
66
|
}
|
|
67
67
|
async setupProvider(eoaProvider) {
|
|
68
|
-
var
|
|
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 (
|
|
110
|
-
var
|
|
111
|
-
this._paymasterClient = accountAbstraction.createPaymasterClient(_objectSpread(_objectSpread({},
|
|
112
|
-
transport: (
|
|
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({},
|
|
121
|
+
this._bundlerClient = accountAbstraction.createBundlerClient(_objectSpread(_objectSpread({}, bundlerConfig), {}, {
|
|
116
122
|
account: this.smartAccount,
|
|
117
123
|
client: this._publicClient,
|
|
118
|
-
transport: (
|
|
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
|
-
|
|
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
|
-
|
|
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(
|
|
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
|
|
12
|
-
|
|
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;
|
|
@@ -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 {
|
|
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?:
|
|
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
|
|
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?:
|
|
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 {
|
|
2
|
-
import {
|
|
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
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
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
|
-
|
|
14
|
-
|
|
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 {
|
|
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<
|
|
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
|
-
|
|
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 {
|
|
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?:
|
|
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;
|