@web3auth/no-modal 11.2.0 → 11.3.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/account-linking/react.js +0 -1
- package/dist/lib.cjs/account-linking/vue.js +0 -1
- package/dist/lib.cjs/base/utils.js +1 -1
- package/dist/lib.cjs/base/wallet/index.js +3 -1
- package/dist/lib.cjs/connectors/auth-connector/authConnector.js +2 -2
- package/dist/lib.cjs/connectors/base-account-connector/baseAccountConnector.js +211 -0
- package/dist/lib.cjs/connectors/base-account-connector/index.js +7 -0
- package/dist/lib.cjs/index.js +7 -7
- package/dist/lib.cjs/noModal.js +3 -3
- package/dist/lib.cjs/types/base/core/IWeb3Auth.d.ts +3 -0
- package/dist/lib.cjs/types/base/wallet/index.d.ts +3 -0
- package/dist/lib.cjs/types/connectors/base-account-connector/baseAccountConnector.d.ts +10 -0
- package/dist/lib.cjs/types/connectors/base-account-connector/index.d.ts +1 -0
- package/dist/lib.esm/base/utils.js +1 -1
- package/dist/lib.esm/base/wallet/index.js +3 -1
- package/dist/lib.esm/connectors/base-account-connector/baseAccountConnector.js +198 -0
- package/dist/lib.esm/connectors/base-account-connector/index.js +1 -0
- package/dist/lib.esm/noModal.js +2 -1
- package/package.json +15 -2
|
@@ -19,7 +19,6 @@ require('jwt-decode');
|
|
|
19
19
|
require('../base/plugin/errors.js');
|
|
20
20
|
require('../base/plugin/IPlugin.js');
|
|
21
21
|
var useWeb3AuthInner = require('../react/hooks/useWeb3AuthInner.js');
|
|
22
|
-
require('./errors.js');
|
|
23
22
|
var rest = require('./rest.js');
|
|
24
23
|
|
|
25
24
|
const useLinkAccount = () => {
|
|
@@ -19,7 +19,6 @@ require('jwt-decode');
|
|
|
19
19
|
require('../base/plugin/errors.js');
|
|
20
20
|
require('../base/plugin/IPlugin.js');
|
|
21
21
|
var useWeb3AuthInner = require('../vue/composables/useWeb3AuthInner.js');
|
|
22
|
-
require('./errors.js');
|
|
23
22
|
var rest = require('./rest.js');
|
|
24
23
|
|
|
25
24
|
const useLinkAccount = () => {
|
|
@@ -145,7 +145,7 @@ const getWalletServicesAnalyticsProperties = walletServicesConfig => {
|
|
|
145
145
|
ws_default_portfolio: walletServicesConfig === null || walletServicesConfig === void 0 || (_walletServicesConfig10 = walletServicesConfig.whiteLabel) === null || _walletServicesConfig10 === void 0 ? void 0 : _walletServicesConfig10.defaultPortfolio
|
|
146
146
|
};
|
|
147
147
|
};
|
|
148
|
-
const sdkVersion = "11.
|
|
148
|
+
const sdkVersion = "11.3.0";
|
|
149
149
|
const getErrorAnalyticsProperties = error => {
|
|
150
150
|
try {
|
|
151
151
|
const code = error instanceof index.Web3AuthError ? error.code : error === null || error === void 0 ? void 0 : error.code;
|
|
@@ -10,13 +10,15 @@ const MULTI_CHAIN_CONNECTORS = {
|
|
|
10
10
|
};
|
|
11
11
|
const SOLANA_CONNECTORS = _objectSpread({}, MULTI_CHAIN_CONNECTORS);
|
|
12
12
|
const EVM_CONNECTORS = _objectSpread({
|
|
13
|
-
COINBASE: "coinbase"
|
|
13
|
+
COINBASE: "coinbase",
|
|
14
|
+
BASE_ACCOUNT: "base-account"
|
|
14
15
|
}, MULTI_CHAIN_CONNECTORS);
|
|
15
16
|
const WALLET_CONNECTORS = _objectSpread(_objectSpread({}, EVM_CONNECTORS), SOLANA_CONNECTORS);
|
|
16
17
|
const CONNECTOR_NAMES = {
|
|
17
18
|
[MULTI_CHAIN_CONNECTORS.AUTH]: "Auth",
|
|
18
19
|
[MULTI_CHAIN_CONNECTORS.WALLET_CONNECT_V2]: "Wallet Connect v2",
|
|
19
20
|
[EVM_CONNECTORS.COINBASE]: "Coinbase Smart Wallet",
|
|
21
|
+
[EVM_CONNECTORS.BASE_ACCOUNT]: "Base Account",
|
|
20
22
|
[EVM_CONNECTORS.METAMASK]: "MetaMask"
|
|
21
23
|
};
|
|
22
24
|
const WEB3AUTH_ICON = `data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iOTYiIGhlaWdodD0iOTciIHZpZXdCb3g9IjAgMCA5NiA5NyIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik00NC4wMzQ2IDczLjI2MjRDNDMuODU5NSA3My45MTU5IDQ0LjM1MTkgNzQuNTU3NiA0NS4wMjg1IDc0LjU1NzZINTAuOTUzOUM1MS42MzA0IDc0LjU1NzYgNTIuMTIyOSA3My45MTU5IDUxLjk0NzggNzMuMjYyNEw0OC45ODUgNjIuMjA1M0M0OC43MTI2IDYxLjE4ODUgNDcuMjY5OCA2MS4xODg1IDQ2Ljk5NzMgNjIuMjA1M0w0NC4wMzQ2IDczLjI2MjRaIiBmaWxsPSIjMDM2NEZGIi8+CjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNMzguMTM0NSA4MC4zMzk2QzM3LjY4MDcgODIuMDMzIDM2LjE0NjEgODMuMjEwNiAzNC4zOTI5IDgzLjIxMDZIMjYuMzcyNkMyMy44MjU2IDgzLjIxMDYgMjEuOTcxOSA4MC43OTQ3IDIyLjYzMTEgNzguMzM0NUwzOS4wODQ0IDE2LjkyOTlDMzkuNTgwNyAxNS4wNzc3IDQxLjI1OTEgMTMuNzg5NyA0My4xNzY3IDEzLjc4OTdINTIuNzIxOUM1NC42Mzk0IDEzLjc4OTcgNTYuMzE3OSAxNS4wNzc3IDU2LjgxNDIgMTYuOTI5OUw3My4yNjc1IDc4LjMzNDVDNzMuOTI2NyA4MC43OTQ3IDcyLjA3MjkgODMuMjEwNiA2OS41MjYgODMuMjEwNkg2MS41MDU2QzU5Ljc1MjQgODMuMjEwNiA1OC4yMTc4IDgyLjAzMyA1Ny43NjQxIDgwLjMzOTZMNDkuNzYxNiA1MC40NzM4QzQ5LjI2NDggNDguNjE5NyA0Ni42MzM4IDQ4LjYxOTcgNDYuMTM3IDUwLjQ3MzhMMzguMTM0NSA4MC4zMzk2WiIgZmlsbD0iIzAzNjRGRiIvPgo8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTc4LjQ3NzQgNjguNzY4NUM3Ny45NjQ2IDcwLjY4MjQgNzUuMjQ4NyA3MC42ODI0IDc0LjczNTkgNjguNzY4NUw2OC43NjI2IDQ2LjQ3NTlDNjguNjQ3MSA0Ni4wNDQ5IDY4LjY0NzEgNDUuNTkxIDY4Ljc2MjYgNDUuMTZMNzYuMzc1MSAxNi43NUM3Ni44NDMgMTUuMDAzNiA3OC40MjU2IDEzLjc4OTMgODAuMjMzNSAxMy43ODkzSDg4LjAwMzJDOTAuNjI5OCAxMy43ODkzIDkyLjU0MTUgMTYuMjgwNyA5MS44NjE3IDE4LjgxNzhMNzguNDc3NCA2OC43Njg1Wk0yNy4yMjc0IDQ2LjQzODdDMjcuMzQyOSA0Ni4wMDc3IDI3LjM0MjkgNDUuNTUzOSAyNy4yMjc0IDQ1LjEyMjhMMTkuNjI0OSAxNi43NUMxOS4xNTcgMTUuMDAzNiAxNy41NzQ0IDEzLjc4OTMgMTUuNzY2NSAxMy43ODkzSDcuOTk2NzdDNS4zNzAyMyAxMy43ODkzIDMuNDU4NTEgMTYuMjgwNyA0LjEzODMxIDE4LjgxNzhMMTcuNTEyNiA2OC43MzEzQzE4LjAyNTQgNzAuNjQ1MiAyMC43NDEzIDcwLjY0NTIgMjEuMjU0MSA2OC43MzEzTDI3LjIyNzQgNDYuNDM4N1oiIGZpbGw9IiMwMzY0RkYiLz4KPC9zdmc+Cg==`;
|
|
@@ -9,8 +9,6 @@ var securePubSub = require('@toruslabs/secure-pub-sub');
|
|
|
9
9
|
var auth = require('@web3auth/auth');
|
|
10
10
|
var wsEmbed = require('@web3auth/ws-embed');
|
|
11
11
|
var deepmerge = require('deepmerge');
|
|
12
|
-
var errors = require('../../account-linking/errors.js');
|
|
13
|
-
var rest = require('../../account-linking/rest.js');
|
|
14
12
|
var analytics = require('../../base/analytics.js');
|
|
15
13
|
var IChainInterface = require('../../base/chain/IChainInterface.js');
|
|
16
14
|
var baseConnector = require('../../base/connector/baseConnector.js');
|
|
@@ -26,6 +24,8 @@ var utils = require('../../base/utils.js');
|
|
|
26
24
|
var index$1 = require('../../base/wallet/index.js');
|
|
27
25
|
var utils$1 = require('../utils.js');
|
|
28
26
|
var authSolanaWallet = require('./authSolanaWallet.js');
|
|
27
|
+
var errors = require('../../account-linking/errors.js');
|
|
28
|
+
var rest = require('../../account-linking/rest.js');
|
|
29
29
|
|
|
30
30
|
// Auth connections that have been deprecated and are no longer supported by the SDK.
|
|
31
31
|
// Passing any of these as `authConnection` results in a hard error so consumers
|
|
@@ -0,0 +1,211 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var _objectSpread = require('@babel/runtime/helpers/objectSpread2');
|
|
4
|
+
var _defineProperty = require('@babel/runtime/helpers/defineProperty');
|
|
5
|
+
require('@segment/analytics-next');
|
|
6
|
+
require('../../base/loglevel.js');
|
|
7
|
+
var IChainInterface = require('../../base/chain/IChainInterface.js');
|
|
8
|
+
var baseControllers = require('@toruslabs/base-controllers');
|
|
9
|
+
require('@toruslabs/session-manager');
|
|
10
|
+
require('@web3auth/auth');
|
|
11
|
+
var index$1 = require('../../base/errors/index.js');
|
|
12
|
+
require('@toruslabs/constants');
|
|
13
|
+
require('@toruslabs/http-helpers');
|
|
14
|
+
require('../../base/constants.js');
|
|
15
|
+
var index = require('../../base/wallet/index.js');
|
|
16
|
+
require('../../base/connector/connectorStatus.js');
|
|
17
|
+
var constants = require('../../base/connector/constants.js');
|
|
18
|
+
require('jwt-decode');
|
|
19
|
+
require('../../base/plugin/errors.js');
|
|
20
|
+
require('../../base/plugin/IPlugin.js');
|
|
21
|
+
var baseEvmConnector = require('../base-evm-connector/baseEvmConnector.js');
|
|
22
|
+
var utils = require('../utils.js');
|
|
23
|
+
|
|
24
|
+
class BaseAccountConnector extends baseEvmConnector.BaseEvmConnector {
|
|
25
|
+
constructor(connectorOptions) {
|
|
26
|
+
super(connectorOptions);
|
|
27
|
+
_defineProperty(this, "connectorNamespace", IChainInterface.CONNECTOR_NAMESPACES.EIP155);
|
|
28
|
+
_defineProperty(this, "currentChainNamespace", baseControllers.CHAIN_NAMESPACES.EIP155);
|
|
29
|
+
_defineProperty(this, "type", constants.CONNECTOR_CATEGORY.EXTERNAL);
|
|
30
|
+
_defineProperty(this, "name", index.WALLET_CONNECTORS.BASE_ACCOUNT);
|
|
31
|
+
_defineProperty(this, "status", constants.CONNECTOR_STATUS.NOT_READY);
|
|
32
|
+
_defineProperty(this, "baseAccountProvider", null);
|
|
33
|
+
_defineProperty(this, "baseAccountOptions", {
|
|
34
|
+
appName: "Web3Auth"
|
|
35
|
+
});
|
|
36
|
+
this.baseAccountOptions = _objectSpread(_objectSpread({}, this.baseAccountOptions), connectorOptions.connectorSettings);
|
|
37
|
+
}
|
|
38
|
+
get provider() {
|
|
39
|
+
if (this.status !== constants.CONNECTOR_STATUS.NOT_READY && this.baseAccountProvider) {
|
|
40
|
+
return this.baseAccountProvider;
|
|
41
|
+
}
|
|
42
|
+
return null;
|
|
43
|
+
}
|
|
44
|
+
set provider(_) {
|
|
45
|
+
throw new Error("Not implemented");
|
|
46
|
+
}
|
|
47
|
+
async init(options) {
|
|
48
|
+
await super.init(options);
|
|
49
|
+
const chainConfig = this.coreOptions.chains.find(x => x.chainId === options.chainId);
|
|
50
|
+
super.checkInitializationRequirements({
|
|
51
|
+
chainConfig
|
|
52
|
+
});
|
|
53
|
+
const {
|
|
54
|
+
createBaseAccountSDK
|
|
55
|
+
} = await import('@base-org/account');
|
|
56
|
+
let appName = this.baseAccountOptions.appName || "Web3Auth";
|
|
57
|
+
let appLogoUrl = this.baseAccountOptions.appLogoUrl || "";
|
|
58
|
+
if (typeof window !== "undefined") {
|
|
59
|
+
if (!this.baseAccountOptions.appName) {
|
|
60
|
+
appName = utils.getSiteName(window) || "Web3Auth";
|
|
61
|
+
}
|
|
62
|
+
if (!this.baseAccountOptions.appLogoUrl) {
|
|
63
|
+
appLogoUrl = (await utils.getSiteIcon(window)) || "";
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
const appChainIds = this.coreOptions.chains.filter(x => x.chainNamespace === baseControllers.CHAIN_NAMESPACES.EIP155).map(x => Number.parseInt(x.chainId, 16));
|
|
67
|
+
const sdk = createBaseAccountSDK(_objectSpread(_objectSpread({}, this.baseAccountOptions), {}, {
|
|
68
|
+
appName,
|
|
69
|
+
appLogoUrl: appLogoUrl || null,
|
|
70
|
+
appChainIds: this.baseAccountOptions.appChainIds || appChainIds
|
|
71
|
+
}));
|
|
72
|
+
this.baseAccountProvider = sdk.getProvider();
|
|
73
|
+
this.status = constants.CONNECTOR_STATUS.READY;
|
|
74
|
+
this.emit(constants.CONNECTOR_EVENTS.READY, index.WALLET_CONNECTORS.BASE_ACCOUNT);
|
|
75
|
+
try {
|
|
76
|
+
if (options.autoConnect) {
|
|
77
|
+
this.rehydrated = true;
|
|
78
|
+
const connection = await this.connect({
|
|
79
|
+
chainId: options.chainId,
|
|
80
|
+
getAuthTokenInfo: options.getAuthTokenInfo
|
|
81
|
+
});
|
|
82
|
+
if (!connection) {
|
|
83
|
+
this.rehydrated = false;
|
|
84
|
+
throw index$1.WalletLoginError.connectionError("Failed to rehydrate.");
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
} catch (error) {
|
|
88
|
+
this.emit(constants.CONNECTOR_EVENTS.REHYDRATION_ERROR, error);
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
async connect({
|
|
92
|
+
chainId,
|
|
93
|
+
getAuthTokenInfo
|
|
94
|
+
}) {
|
|
95
|
+
super.checkConnectionRequirements();
|
|
96
|
+
if (!this.baseAccountProvider) throw index$1.WalletLoginError.notConnectedError("Connector is not initialized");
|
|
97
|
+
this.status = constants.CONNECTOR_STATUS.CONNECTING;
|
|
98
|
+
this.emit(constants.CONNECTOR_EVENTS.CONNECTING, {
|
|
99
|
+
connector: index.WALLET_CONNECTORS.BASE_ACCOUNT
|
|
100
|
+
});
|
|
101
|
+
try {
|
|
102
|
+
const chainConfig = this.coreOptions.chains.find(x => x.chainId === chainId);
|
|
103
|
+
if (!chainConfig) throw index$1.WalletLoginError.connectionError("Chain config is not available");
|
|
104
|
+
await this.baseAccountProvider.request({
|
|
105
|
+
method: "eth_requestAccounts"
|
|
106
|
+
});
|
|
107
|
+
const currentChainId = await this.baseAccountProvider.request({
|
|
108
|
+
method: "eth_chainId"
|
|
109
|
+
});
|
|
110
|
+
if (currentChainId !== chainConfig.chainId) {
|
|
111
|
+
await this.switchChain(chainConfig, true);
|
|
112
|
+
}
|
|
113
|
+
this.status = constants.CONNECTOR_STATUS.CONNECTED;
|
|
114
|
+
if (!this.provider) throw index$1.WalletLoginError.notConnectedError("Failed to connect with provider");
|
|
115
|
+
this.provider.once("disconnect", () => {
|
|
116
|
+
this.disconnect();
|
|
117
|
+
});
|
|
118
|
+
this.emit(constants.CONNECTOR_EVENTS.CONNECTED, {
|
|
119
|
+
connectorName: index.WALLET_CONNECTORS.BASE_ACCOUNT,
|
|
120
|
+
reconnected: this.rehydrated,
|
|
121
|
+
ethereumProvider: this.provider,
|
|
122
|
+
solanaWallet: null,
|
|
123
|
+
connectorNamespace: this.connectorNamespace
|
|
124
|
+
});
|
|
125
|
+
await this.authorizeOrDisconnect(getAuthTokenInfo);
|
|
126
|
+
return {
|
|
127
|
+
ethereumProvider: this.provider,
|
|
128
|
+
solanaWallet: null,
|
|
129
|
+
connectorName: this.name,
|
|
130
|
+
connectorNamespace: this.connectorNamespace
|
|
131
|
+
};
|
|
132
|
+
} catch (error) {
|
|
133
|
+
this.status = constants.CONNECTOR_STATUS.READY;
|
|
134
|
+
if (!this.rehydrated) this.emit(constants.CONNECTOR_EVENTS.ERRORED, error);
|
|
135
|
+
this.rehydrated = false;
|
|
136
|
+
if (error instanceof index$1.Web3AuthError) throw error;
|
|
137
|
+
throw index$1.WalletLoginError.connectionError("Failed to login with Base Account", error);
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
async disconnect(options = {
|
|
141
|
+
cleanup: false
|
|
142
|
+
}) {
|
|
143
|
+
var _this$provider;
|
|
144
|
+
await super.disconnectSession();
|
|
145
|
+
(_this$provider = this.provider) === null || _this$provider === void 0 || _this$provider.removeAllListeners();
|
|
146
|
+
if (options.cleanup) {
|
|
147
|
+
this.status = constants.CONNECTOR_STATUS.NOT_READY;
|
|
148
|
+
this.baseAccountProvider = null;
|
|
149
|
+
} else {
|
|
150
|
+
this.status = constants.CONNECTOR_STATUS.READY;
|
|
151
|
+
}
|
|
152
|
+
await super.disconnect();
|
|
153
|
+
}
|
|
154
|
+
async getUserInfo() {
|
|
155
|
+
if (!this.canAuthorize) throw index$1.WalletLoginError.notConnectedError("Not connected with wallet, Please login/connect first");
|
|
156
|
+
return {};
|
|
157
|
+
}
|
|
158
|
+
async switchChain(params, init = false) {
|
|
159
|
+
super.checkSwitchChainRequirements(params, init);
|
|
160
|
+
try {
|
|
161
|
+
var _this$baseAccountProv;
|
|
162
|
+
await ((_this$baseAccountProv = this.baseAccountProvider) === null || _this$baseAccountProv === void 0 ? void 0 : _this$baseAccountProv.request({
|
|
163
|
+
method: "wallet_switchEthereumChain",
|
|
164
|
+
params: [{
|
|
165
|
+
chainId: params.chainId
|
|
166
|
+
}]
|
|
167
|
+
}));
|
|
168
|
+
} catch (switchError) {
|
|
169
|
+
if (switchError.code === 4902) {
|
|
170
|
+
var _this$baseAccountProv2;
|
|
171
|
+
const chainConfig = this.coreOptions.chains.find(x => x.chainId === params.chainId);
|
|
172
|
+
if (!chainConfig) throw index$1.WalletLoginError.connectionError("Chain config is not available");
|
|
173
|
+
await ((_this$baseAccountProv2 = this.baseAccountProvider) === null || _this$baseAccountProv2 === void 0 ? void 0 : _this$baseAccountProv2.request({
|
|
174
|
+
method: "wallet_addEthereumChain",
|
|
175
|
+
params: [{
|
|
176
|
+
chainId: chainConfig.chainId,
|
|
177
|
+
rpcUrls: [chainConfig.rpcTarget],
|
|
178
|
+
chainName: chainConfig.displayName,
|
|
179
|
+
nativeCurrency: {
|
|
180
|
+
name: chainConfig.tickerName,
|
|
181
|
+
symbol: chainConfig.ticker,
|
|
182
|
+
decimals: chainConfig.decimals || 18
|
|
183
|
+
},
|
|
184
|
+
blockExplorerUrls: [chainConfig.blockExplorerUrl],
|
|
185
|
+
iconUrls: [chainConfig.logo]
|
|
186
|
+
}]
|
|
187
|
+
}));
|
|
188
|
+
return;
|
|
189
|
+
}
|
|
190
|
+
throw switchError;
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
async enableMFA() {
|
|
194
|
+
throw new Error("Method Not implemented");
|
|
195
|
+
}
|
|
196
|
+
async manageMFA() {
|
|
197
|
+
throw new Error("Method Not implemented");
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
const baseAccountConnector = params => {
|
|
201
|
+
return ({
|
|
202
|
+
coreOptions
|
|
203
|
+
}) => {
|
|
204
|
+
return new BaseAccountConnector({
|
|
205
|
+
connectorSettings: params,
|
|
206
|
+
coreOptions
|
|
207
|
+
});
|
|
208
|
+
};
|
|
209
|
+
};
|
|
210
|
+
|
|
211
|
+
exports.baseAccountConnector = baseAccountConnector;
|
package/dist/lib.cjs/index.js
CHANGED
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var errors = require('./account-linking/errors.js');
|
|
4
|
-
var rest = require('./account-linking/rest.js');
|
|
5
3
|
var analytics = require('./base/analytics.js');
|
|
6
4
|
var IChainInterface = require('./base/chain/IChainInterface.js');
|
|
7
5
|
var index$2 = require('./base/composables/index.js');
|
|
@@ -40,19 +38,16 @@ var utils = require('./providers/base-provider/utils.js');
|
|
|
40
38
|
var ethRpcMiddlewares = require('./providers/ethereum-provider/rpc/ethRpcMiddlewares.js');
|
|
41
39
|
var jrpcClient = require('./providers/ethereum-provider/rpc/jrpcClient.js');
|
|
42
40
|
var walletMiddleware = require('./providers/ethereum-provider/rpc/walletMiddleware.js');
|
|
41
|
+
var errors = require('./account-linking/errors.js');
|
|
43
42
|
var wsEmbed = require('@web3auth/ws-embed');
|
|
44
43
|
var baseControllers = require('@toruslabs/base-controllers');
|
|
45
44
|
var app = require('@wallet-standard/app');
|
|
46
45
|
var solana = require('./base/wallet/solana.js');
|
|
46
|
+
var rest = require('./account-linking/rest.js');
|
|
47
47
|
var walletStandardConnector = require('./connectors/injected-solana-connector/walletStandardConnector.js');
|
|
48
48
|
|
|
49
49
|
|
|
50
50
|
|
|
51
|
-
exports.AccountLinkingError = errors.AccountLinkingError;
|
|
52
|
-
exports.formatAccountLinkingErrorMessage = errors.formatAccountLinkingErrorMessage;
|
|
53
|
-
exports.getAccountLinkingRequestError = errors.getAccountLinkingRequestError;
|
|
54
|
-
exports.makeAccountLinkingRequest = rest.makeAccountLinkingRequest;
|
|
55
|
-
exports.makeAccountUnlinkingRequest = rest.makeAccountUnlinkingRequest;
|
|
56
51
|
exports.ANALYTICS_EVENTS = analytics.ANALYTICS_EVENTS;
|
|
57
52
|
exports.ANALYTICS_INTEGRATION_TYPE = analytics.ANALYTICS_INTEGRATION_TYPE;
|
|
58
53
|
exports.ANALYTICS_SDK_TYPE = analytics.ANALYTICS_SDK_TYPE;
|
|
@@ -221,6 +216,9 @@ exports.createEthChainSwitchMiddleware = ethRpcMiddlewares.createEthChainSwitchM
|
|
|
221
216
|
exports.createEthMiddleware = ethRpcMiddlewares.createEthMiddleware;
|
|
222
217
|
exports.createEthJsonRpcClient = jrpcClient.createEthJsonRpcClient;
|
|
223
218
|
exports.createWalletMiddlewareV2 = walletMiddleware.createWalletMiddlewareV2;
|
|
219
|
+
exports.AccountLinkingError = errors.AccountLinkingError;
|
|
220
|
+
exports.formatAccountLinkingErrorMessage = errors.formatAccountLinkingErrorMessage;
|
|
221
|
+
exports.getAccountLinkingRequestError = errors.getAccountLinkingRequestError;
|
|
224
222
|
Object.defineProperty(exports, "BUTTON_POSITION", {
|
|
225
223
|
enumerable: true,
|
|
226
224
|
get: function () { return wsEmbed.BUTTON_POSITION; }
|
|
@@ -245,4 +243,6 @@ exports.getSolanaChainByChainConfig = solana.getSolanaChainByChainConfig;
|
|
|
245
243
|
exports.walletSignAndSendTransaction = solana.walletSignAndSendTransaction;
|
|
246
244
|
exports.walletSignMessage = solana.walletSignMessage;
|
|
247
245
|
exports.walletSignTransaction = solana.walletSignTransaction;
|
|
246
|
+
exports.makeAccountLinkingRequest = rest.makeAccountLinkingRequest;
|
|
247
|
+
exports.makeAccountUnlinkingRequest = rest.makeAccountUnlinkingRequest;
|
|
248
248
|
exports.walletStandardConnector = walletStandardConnector.walletStandardConnector;
|
package/dist/lib.cjs/noModal.js
CHANGED
|
@@ -7,8 +7,6 @@ var baseControllers = require('@toruslabs/base-controllers');
|
|
|
7
7
|
var ethereumControllers = require('@toruslabs/ethereum-controllers');
|
|
8
8
|
var auth = require('@web3auth/auth');
|
|
9
9
|
var deepmerge = require('deepmerge');
|
|
10
|
-
var errors = require('./account-linking/errors.js');
|
|
11
|
-
require('@toruslabs/http-helpers');
|
|
12
10
|
var analytics = require('./base/analytics.js');
|
|
13
11
|
var IChainInterface = require('./base/chain/IChainInterface.js');
|
|
14
12
|
require('@toruslabs/session-manager');
|
|
@@ -29,6 +27,7 @@ var plugin = require('./plugins/wallet-services-plugin/plugin.js');
|
|
|
29
27
|
require('./providers/base-provider/utils.js');
|
|
30
28
|
var CommonJRPCProvider = require('./providers/base-provider/CommonJRPCProvider.js');
|
|
31
29
|
require('./providers/base-provider/commonPrivateKeyProvider.js');
|
|
30
|
+
var errors = require('./account-linking/errors.js');
|
|
32
31
|
|
|
33
32
|
const _excluded = ["walletScope", "eipStandard"];
|
|
34
33
|
const PRIMARY_CONNECTED_WALLET_KEY = "__primary__";
|
|
@@ -1665,7 +1664,8 @@ class Web3AuthNoModal extends auth.SafeEventEmitter {
|
|
|
1665
1664
|
return chain.chainId === ((_this$currentChain6 = this.currentChain) === null || _this$currentChain6 === void 0 ? void 0 : _this$currentChain6.chainId);
|
|
1666
1665
|
}));
|
|
1667
1666
|
// setup AA provider if AA is enabled (skip for EIP-7702; 7702 uses EOA + 5792/7702 RPC only)
|
|
1668
|
-
|
|
1667
|
+
// Skip AA wrapping for Base Account as it's already a smart account provider
|
|
1668
|
+
if (!is7702 && isAaSupportedForCurrentChain && (connectorName === index$1.WALLET_CONNECTORS.AUTH || this.coreOptions.useAAWithExternalWallet && connectorName !== index$1.WALLET_CONNECTORS.BASE_ACCOUNT)) {
|
|
1669
1669
|
var _accountAbstractionCo2;
|
|
1670
1670
|
const {
|
|
1671
1671
|
accountAbstractionProvider,
|
|
@@ -153,6 +153,9 @@ export type LoginParamMap = {
|
|
|
153
153
|
[WALLET_CONNECTORS.COINBASE]: {
|
|
154
154
|
chainNamespace: ChainNamespaceType;
|
|
155
155
|
};
|
|
156
|
+
[WALLET_CONNECTORS.BASE_ACCOUNT]: {
|
|
157
|
+
chainNamespace: ChainNamespaceType;
|
|
158
|
+
};
|
|
156
159
|
[WALLET_CONNECTORS.WALLET_CONNECT_V2]: {
|
|
157
160
|
chainNamespace: ChainNamespaceType;
|
|
158
161
|
};
|
|
@@ -15,12 +15,14 @@ export declare const EVM_CONNECTORS: {
|
|
|
15
15
|
readonly WALLET_CONNECT_V2: "wallet-connect-v2";
|
|
16
16
|
readonly METAMASK: "metamask";
|
|
17
17
|
readonly COINBASE: "coinbase";
|
|
18
|
+
readonly BASE_ACCOUNT: "base-account";
|
|
18
19
|
};
|
|
19
20
|
export declare const WALLET_CONNECTORS: {
|
|
20
21
|
readonly AUTH: "auth";
|
|
21
22
|
readonly WALLET_CONNECT_V2: "wallet-connect-v2";
|
|
22
23
|
readonly METAMASK: "metamask";
|
|
23
24
|
readonly COINBASE: "coinbase";
|
|
25
|
+
readonly BASE_ACCOUNT: "base-account";
|
|
24
26
|
};
|
|
25
27
|
export type WALLET_CONNECTOR_TYPE = (typeof WALLET_CONNECTORS)[keyof typeof WALLET_CONNECTORS];
|
|
26
28
|
export type SOLANA_CONNECTOR_TYPE = (typeof SOLANA_CONNECTORS)[keyof typeof SOLANA_CONNECTORS];
|
|
@@ -30,6 +32,7 @@ export declare const CONNECTOR_NAMES: {
|
|
|
30
32
|
auth: string;
|
|
31
33
|
"wallet-connect-v2": string;
|
|
32
34
|
coinbase: string;
|
|
35
|
+
"base-account": string;
|
|
33
36
|
metamask: string;
|
|
34
37
|
};
|
|
35
38
|
export declare const WEB3AUTH_ICON: WalletIcon;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { AppMetadata, Preference } from "@base-org/account";
|
|
2
|
+
import { BaseConnectorSettings, ConnectorFn } from "../../base";
|
|
3
|
+
export type BaseAccountSDKOptions = Partial<AppMetadata & {
|
|
4
|
+
preference?: Preference;
|
|
5
|
+
paymasterUrls?: Record<number, string>;
|
|
6
|
+
}>;
|
|
7
|
+
export interface BaseAccountConnectorOptions extends BaseConnectorSettings {
|
|
8
|
+
connectorSettings?: BaseAccountSDKOptions;
|
|
9
|
+
}
|
|
10
|
+
export declare const baseAccountConnector: (params?: BaseAccountSDKOptions) => ConnectorFn;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./baseAccountConnector";
|
|
@@ -149,7 +149,7 @@ const getWalletServicesAnalyticsProperties = walletServicesConfig => {
|
|
|
149
149
|
ws_default_portfolio: walletServicesConfig === null || walletServicesConfig === void 0 || (_walletServicesConfig10 = walletServicesConfig.whiteLabel) === null || _walletServicesConfig10 === void 0 ? void 0 : _walletServicesConfig10.defaultPortfolio
|
|
150
150
|
};
|
|
151
151
|
};
|
|
152
|
-
const sdkVersion = "11.
|
|
152
|
+
const sdkVersion = "11.3.0";
|
|
153
153
|
const getErrorAnalyticsProperties = error => {
|
|
154
154
|
try {
|
|
155
155
|
const code = error instanceof Web3AuthError ? error.code : error === null || error === void 0 ? void 0 : error.code;
|
|
@@ -7,13 +7,15 @@ const MULTI_CHAIN_CONNECTORS = {
|
|
|
7
7
|
};
|
|
8
8
|
const SOLANA_CONNECTORS = _objectSpread({}, MULTI_CHAIN_CONNECTORS);
|
|
9
9
|
const EVM_CONNECTORS = _objectSpread({
|
|
10
|
-
COINBASE: "coinbase"
|
|
10
|
+
COINBASE: "coinbase",
|
|
11
|
+
BASE_ACCOUNT: "base-account"
|
|
11
12
|
}, MULTI_CHAIN_CONNECTORS);
|
|
12
13
|
const WALLET_CONNECTORS = _objectSpread(_objectSpread({}, EVM_CONNECTORS), SOLANA_CONNECTORS);
|
|
13
14
|
const CONNECTOR_NAMES = {
|
|
14
15
|
[MULTI_CHAIN_CONNECTORS.AUTH]: "Auth",
|
|
15
16
|
[MULTI_CHAIN_CONNECTORS.WALLET_CONNECT_V2]: "Wallet Connect v2",
|
|
16
17
|
[EVM_CONNECTORS.COINBASE]: "Coinbase Smart Wallet",
|
|
18
|
+
[EVM_CONNECTORS.BASE_ACCOUNT]: "Base Account",
|
|
17
19
|
[EVM_CONNECTORS.METAMASK]: "MetaMask"
|
|
18
20
|
};
|
|
19
21
|
const WEB3AUTH_ICON = `data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iOTYiIGhlaWdodD0iOTciIHZpZXdCb3g9IjAgMCA5NiA5NyIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik00NC4wMzQ2IDczLjI2MjRDNDMuODU5NSA3My45MTU5IDQ0LjM1MTkgNzQuNTU3NiA0NS4wMjg1IDc0LjU1NzZINTAuOTUzOUM1MS42MzA0IDc0LjU1NzYgNTIuMTIyOSA3My45MTU5IDUxLjk0NzggNzMuMjYyNEw0OC45ODUgNjIuMjA1M0M0OC43MTI2IDYxLjE4ODUgNDcuMjY5OCA2MS4xODg1IDQ2Ljk5NzMgNjIuMjA1M0w0NC4wMzQ2IDczLjI2MjRaIiBmaWxsPSIjMDM2NEZGIi8+CjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNMzguMTM0NSA4MC4zMzk2QzM3LjY4MDcgODIuMDMzIDM2LjE0NjEgODMuMjEwNiAzNC4zOTI5IDgzLjIxMDZIMjYuMzcyNkMyMy44MjU2IDgzLjIxMDYgMjEuOTcxOSA4MC43OTQ3IDIyLjYzMTEgNzguMzM0NUwzOS4wODQ0IDE2LjkyOTlDMzkuNTgwNyAxNS4wNzc3IDQxLjI1OTEgMTMuNzg5NyA0My4xNzY3IDEzLjc4OTdINTIuNzIxOUM1NC42Mzk0IDEzLjc4OTcgNTYuMzE3OSAxNS4wNzc3IDU2LjgxNDIgMTYuOTI5OUw3My4yNjc1IDc4LjMzNDVDNzMuOTI2NyA4MC43OTQ3IDcyLjA3MjkgODMuMjEwNiA2OS41MjYgODMuMjEwNkg2MS41MDU2QzU5Ljc1MjQgODMuMjEwNiA1OC4yMTc4IDgyLjAzMyA1Ny43NjQxIDgwLjMzOTZMNDkuNzYxNiA1MC40NzM4QzQ5LjI2NDggNDguNjE5NyA0Ni42MzM4IDQ4LjYxOTcgNDYuMTM3IDUwLjQ3MzhMMzguMTM0NSA4MC4zMzk2WiIgZmlsbD0iIzAzNjRGRiIvPgo8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTc4LjQ3NzQgNjguNzY4NUM3Ny45NjQ2IDcwLjY4MjQgNzUuMjQ4NyA3MC42ODI0IDc0LjczNTkgNjguNzY4NUw2OC43NjI2IDQ2LjQ3NTlDNjguNjQ3MSA0Ni4wNDQ5IDY4LjY0NzEgNDUuNTkxIDY4Ljc2MjYgNDUuMTZMNzYuMzc1MSAxNi43NUM3Ni44NDMgMTUuMDAzNiA3OC40MjU2IDEzLjc4OTMgODAuMjMzNSAxMy43ODkzSDg4LjAwMzJDOTAuNjI5OCAxMy43ODkzIDkyLjU0MTUgMTYuMjgwNyA5MS44NjE3IDE4LjgxNzhMNzguNDc3NCA2OC43Njg1Wk0yNy4yMjc0IDQ2LjQzODdDMjcuMzQyOSA0Ni4wMDc3IDI3LjM0MjkgNDUuNTUzOSAyNy4yMjc0IDQ1LjEyMjhMMTkuNjI0OSAxNi43NUMxOS4xNTcgMTUuMDAzNiAxNy41NzQ0IDEzLjc4OTMgMTUuNzY2NSAxMy43ODkzSDcuOTk2NzdDNS4zNzAyMyAxMy43ODkzIDMuNDU4NTEgMTYuMjgwNyA0LjEzODMxIDE4LjgxNzhMMTcuNTEyNiA2OC43MzEzQzE4LjAyNTQgNzAuNjQ1MiAyMC43NDEzIDcwLjY0NTIgMjEuMjU0MSA2OC43MzEzTDI3LjIyNzQgNDYuNDM4N1oiIGZpbGw9IiMwMzY0RkYiLz4KPC9zdmc+Cg==`;
|
|
@@ -0,0 +1,198 @@
|
|
|
1
|
+
import _objectSpread from '@babel/runtime/helpers/objectSpread2';
|
|
2
|
+
import _defineProperty from '@babel/runtime/helpers/defineProperty';
|
|
3
|
+
import { getSiteName, getSiteIcon } from '../utils.js';
|
|
4
|
+
import { BaseEvmConnector } from '../base-evm-connector/baseEvmConnector.js';
|
|
5
|
+
import { CONNECTOR_NAMESPACES } from '../../base/chain/IChainInterface.js';
|
|
6
|
+
import { WALLET_CONNECTORS } from '../../base/wallet/index.js';
|
|
7
|
+
import { WalletLoginError, Web3AuthError } from '../../base/errors/index.js';
|
|
8
|
+
import { CHAIN_NAMESPACES } from '@toruslabs/base-controllers';
|
|
9
|
+
import { CONNECTOR_CATEGORY, CONNECTOR_STATUS, CONNECTOR_EVENTS } from '../../base/connector/constants.js';
|
|
10
|
+
|
|
11
|
+
class BaseAccountConnector extends BaseEvmConnector {
|
|
12
|
+
constructor(connectorOptions) {
|
|
13
|
+
super(connectorOptions);
|
|
14
|
+
_defineProperty(this, "connectorNamespace", CONNECTOR_NAMESPACES.EIP155);
|
|
15
|
+
_defineProperty(this, "currentChainNamespace", CHAIN_NAMESPACES.EIP155);
|
|
16
|
+
_defineProperty(this, "type", CONNECTOR_CATEGORY.EXTERNAL);
|
|
17
|
+
_defineProperty(this, "name", WALLET_CONNECTORS.BASE_ACCOUNT);
|
|
18
|
+
_defineProperty(this, "status", CONNECTOR_STATUS.NOT_READY);
|
|
19
|
+
_defineProperty(this, "baseAccountProvider", null);
|
|
20
|
+
_defineProperty(this, "baseAccountOptions", {
|
|
21
|
+
appName: "Web3Auth"
|
|
22
|
+
});
|
|
23
|
+
this.baseAccountOptions = _objectSpread(_objectSpread({}, this.baseAccountOptions), connectorOptions.connectorSettings);
|
|
24
|
+
}
|
|
25
|
+
get provider() {
|
|
26
|
+
if (this.status !== CONNECTOR_STATUS.NOT_READY && this.baseAccountProvider) {
|
|
27
|
+
return this.baseAccountProvider;
|
|
28
|
+
}
|
|
29
|
+
return null;
|
|
30
|
+
}
|
|
31
|
+
set provider(_) {
|
|
32
|
+
throw new Error("Not implemented");
|
|
33
|
+
}
|
|
34
|
+
async init(options) {
|
|
35
|
+
await super.init(options);
|
|
36
|
+
const chainConfig = this.coreOptions.chains.find(x => x.chainId === options.chainId);
|
|
37
|
+
super.checkInitializationRequirements({
|
|
38
|
+
chainConfig
|
|
39
|
+
});
|
|
40
|
+
const {
|
|
41
|
+
createBaseAccountSDK
|
|
42
|
+
} = await import('@base-org/account');
|
|
43
|
+
let appName = this.baseAccountOptions.appName || "Web3Auth";
|
|
44
|
+
let appLogoUrl = this.baseAccountOptions.appLogoUrl || "";
|
|
45
|
+
if (typeof window !== "undefined") {
|
|
46
|
+
if (!this.baseAccountOptions.appName) {
|
|
47
|
+
appName = getSiteName(window) || "Web3Auth";
|
|
48
|
+
}
|
|
49
|
+
if (!this.baseAccountOptions.appLogoUrl) {
|
|
50
|
+
appLogoUrl = (await getSiteIcon(window)) || "";
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
const appChainIds = this.coreOptions.chains.filter(x => x.chainNamespace === CHAIN_NAMESPACES.EIP155).map(x => Number.parseInt(x.chainId, 16));
|
|
54
|
+
const sdk = createBaseAccountSDK(_objectSpread(_objectSpread({}, this.baseAccountOptions), {}, {
|
|
55
|
+
appName,
|
|
56
|
+
appLogoUrl: appLogoUrl || null,
|
|
57
|
+
appChainIds: this.baseAccountOptions.appChainIds || appChainIds
|
|
58
|
+
}));
|
|
59
|
+
this.baseAccountProvider = sdk.getProvider();
|
|
60
|
+
this.status = CONNECTOR_STATUS.READY;
|
|
61
|
+
this.emit(CONNECTOR_EVENTS.READY, WALLET_CONNECTORS.BASE_ACCOUNT);
|
|
62
|
+
try {
|
|
63
|
+
if (options.autoConnect) {
|
|
64
|
+
this.rehydrated = true;
|
|
65
|
+
const connection = await this.connect({
|
|
66
|
+
chainId: options.chainId,
|
|
67
|
+
getAuthTokenInfo: options.getAuthTokenInfo
|
|
68
|
+
});
|
|
69
|
+
if (!connection) {
|
|
70
|
+
this.rehydrated = false;
|
|
71
|
+
throw WalletLoginError.connectionError("Failed to rehydrate.");
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
} catch (error) {
|
|
75
|
+
this.emit(CONNECTOR_EVENTS.REHYDRATION_ERROR, error);
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
async connect({
|
|
79
|
+
chainId,
|
|
80
|
+
getAuthTokenInfo
|
|
81
|
+
}) {
|
|
82
|
+
super.checkConnectionRequirements();
|
|
83
|
+
if (!this.baseAccountProvider) throw WalletLoginError.notConnectedError("Connector is not initialized");
|
|
84
|
+
this.status = CONNECTOR_STATUS.CONNECTING;
|
|
85
|
+
this.emit(CONNECTOR_EVENTS.CONNECTING, {
|
|
86
|
+
connector: WALLET_CONNECTORS.BASE_ACCOUNT
|
|
87
|
+
});
|
|
88
|
+
try {
|
|
89
|
+
const chainConfig = this.coreOptions.chains.find(x => x.chainId === chainId);
|
|
90
|
+
if (!chainConfig) throw WalletLoginError.connectionError("Chain config is not available");
|
|
91
|
+
await this.baseAccountProvider.request({
|
|
92
|
+
method: "eth_requestAccounts"
|
|
93
|
+
});
|
|
94
|
+
const currentChainId = await this.baseAccountProvider.request({
|
|
95
|
+
method: "eth_chainId"
|
|
96
|
+
});
|
|
97
|
+
if (currentChainId !== chainConfig.chainId) {
|
|
98
|
+
await this.switchChain(chainConfig, true);
|
|
99
|
+
}
|
|
100
|
+
this.status = CONNECTOR_STATUS.CONNECTED;
|
|
101
|
+
if (!this.provider) throw WalletLoginError.notConnectedError("Failed to connect with provider");
|
|
102
|
+
this.provider.once("disconnect", () => {
|
|
103
|
+
this.disconnect();
|
|
104
|
+
});
|
|
105
|
+
this.emit(CONNECTOR_EVENTS.CONNECTED, {
|
|
106
|
+
connectorName: WALLET_CONNECTORS.BASE_ACCOUNT,
|
|
107
|
+
reconnected: this.rehydrated,
|
|
108
|
+
ethereumProvider: this.provider,
|
|
109
|
+
solanaWallet: null,
|
|
110
|
+
connectorNamespace: this.connectorNamespace
|
|
111
|
+
});
|
|
112
|
+
await this.authorizeOrDisconnect(getAuthTokenInfo);
|
|
113
|
+
return {
|
|
114
|
+
ethereumProvider: this.provider,
|
|
115
|
+
solanaWallet: null,
|
|
116
|
+
connectorName: this.name,
|
|
117
|
+
connectorNamespace: this.connectorNamespace
|
|
118
|
+
};
|
|
119
|
+
} catch (error) {
|
|
120
|
+
this.status = CONNECTOR_STATUS.READY;
|
|
121
|
+
if (!this.rehydrated) this.emit(CONNECTOR_EVENTS.ERRORED, error);
|
|
122
|
+
this.rehydrated = false;
|
|
123
|
+
if (error instanceof Web3AuthError) throw error;
|
|
124
|
+
throw WalletLoginError.connectionError("Failed to login with Base Account", error);
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
async disconnect(options = {
|
|
128
|
+
cleanup: false
|
|
129
|
+
}) {
|
|
130
|
+
var _this$provider;
|
|
131
|
+
await super.disconnectSession();
|
|
132
|
+
(_this$provider = this.provider) === null || _this$provider === void 0 || _this$provider.removeAllListeners();
|
|
133
|
+
if (options.cleanup) {
|
|
134
|
+
this.status = CONNECTOR_STATUS.NOT_READY;
|
|
135
|
+
this.baseAccountProvider = null;
|
|
136
|
+
} else {
|
|
137
|
+
this.status = CONNECTOR_STATUS.READY;
|
|
138
|
+
}
|
|
139
|
+
await super.disconnect();
|
|
140
|
+
}
|
|
141
|
+
async getUserInfo() {
|
|
142
|
+
if (!this.canAuthorize) throw WalletLoginError.notConnectedError("Not connected with wallet, Please login/connect first");
|
|
143
|
+
return {};
|
|
144
|
+
}
|
|
145
|
+
async switchChain(params, init = false) {
|
|
146
|
+
super.checkSwitchChainRequirements(params, init);
|
|
147
|
+
try {
|
|
148
|
+
var _this$baseAccountProv;
|
|
149
|
+
await ((_this$baseAccountProv = this.baseAccountProvider) === null || _this$baseAccountProv === void 0 ? void 0 : _this$baseAccountProv.request({
|
|
150
|
+
method: "wallet_switchEthereumChain",
|
|
151
|
+
params: [{
|
|
152
|
+
chainId: params.chainId
|
|
153
|
+
}]
|
|
154
|
+
}));
|
|
155
|
+
} catch (switchError) {
|
|
156
|
+
if (switchError.code === 4902) {
|
|
157
|
+
var _this$baseAccountProv2;
|
|
158
|
+
const chainConfig = this.coreOptions.chains.find(x => x.chainId === params.chainId);
|
|
159
|
+
if (!chainConfig) throw WalletLoginError.connectionError("Chain config is not available");
|
|
160
|
+
await ((_this$baseAccountProv2 = this.baseAccountProvider) === null || _this$baseAccountProv2 === void 0 ? void 0 : _this$baseAccountProv2.request({
|
|
161
|
+
method: "wallet_addEthereumChain",
|
|
162
|
+
params: [{
|
|
163
|
+
chainId: chainConfig.chainId,
|
|
164
|
+
rpcUrls: [chainConfig.rpcTarget],
|
|
165
|
+
chainName: chainConfig.displayName,
|
|
166
|
+
nativeCurrency: {
|
|
167
|
+
name: chainConfig.tickerName,
|
|
168
|
+
symbol: chainConfig.ticker,
|
|
169
|
+
decimals: chainConfig.decimals || 18
|
|
170
|
+
},
|
|
171
|
+
blockExplorerUrls: [chainConfig.blockExplorerUrl],
|
|
172
|
+
iconUrls: [chainConfig.logo]
|
|
173
|
+
}]
|
|
174
|
+
}));
|
|
175
|
+
return;
|
|
176
|
+
}
|
|
177
|
+
throw switchError;
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
async enableMFA() {
|
|
181
|
+
throw new Error("Method Not implemented");
|
|
182
|
+
}
|
|
183
|
+
async manageMFA() {
|
|
184
|
+
throw new Error("Method Not implemented");
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
const baseAccountConnector = params => {
|
|
188
|
+
return ({
|
|
189
|
+
coreOptions
|
|
190
|
+
}) => {
|
|
191
|
+
return new BaseAccountConnector({
|
|
192
|
+
connectorSettings: params,
|
|
193
|
+
coreOptions
|
|
194
|
+
});
|
|
195
|
+
};
|
|
196
|
+
};
|
|
197
|
+
|
|
198
|
+
export { baseAccountConnector };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { baseAccountConnector } from './baseAccountConnector.js';
|
package/dist/lib.esm/noModal.js
CHANGED
|
@@ -1693,7 +1693,8 @@ class Web3AuthNoModal extends SafeEventEmitter {
|
|
|
1693
1693
|
}));
|
|
1694
1694
|
|
|
1695
1695
|
// setup AA provider if AA is enabled (skip for EIP-7702; 7702 uses EOA + 5792/7702 RPC only)
|
|
1696
|
-
|
|
1696
|
+
// Skip AA wrapping for Base Account as it's already a smart account provider
|
|
1697
|
+
if (!is7702 && isAaSupportedForCurrentChain && (connectorName === WALLET_CONNECTORS.AUTH || this.coreOptions.useAAWithExternalWallet && connectorName !== WALLET_CONNECTORS.BASE_ACCOUNT)) {
|
|
1697
1698
|
var _accountAbstractionCo2;
|
|
1698
1699
|
const {
|
|
1699
1700
|
accountAbstractionProvider,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@web3auth/no-modal",
|
|
3
|
-
"version": "11.
|
|
3
|
+
"version": "11.3.0",
|
|
4
4
|
"description": "Multi chain wallet aggregator for web3Auth",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"web3Auth/no-modal",
|
|
@@ -32,6 +32,7 @@
|
|
|
32
32
|
],
|
|
33
33
|
"peerDependencies": {
|
|
34
34
|
"@babel/runtime": "^7.x",
|
|
35
|
+
"@base-org/account": "^2.5.1",
|
|
35
36
|
"@coinbase/wallet-sdk": "^4.3.x",
|
|
36
37
|
"@solana/react-hooks": "^1.4.0",
|
|
37
38
|
"@x402/evm": "^2.7.0",
|
|
@@ -42,6 +43,9 @@
|
|
|
42
43
|
"vue": "^3.x"
|
|
43
44
|
},
|
|
44
45
|
"peerDependenciesMeta": {
|
|
46
|
+
"@base-org/account": {
|
|
47
|
+
"optional": true
|
|
48
|
+
},
|
|
45
49
|
"@coinbase/wallet-sdk": {
|
|
46
50
|
"optional": true
|
|
47
51
|
},
|
|
@@ -99,6 +103,7 @@
|
|
|
99
103
|
"xrpl": "^2.14.0"
|
|
100
104
|
},
|
|
101
105
|
"devDependencies": {
|
|
106
|
+
"@base-org/account": "^2.5.6",
|
|
102
107
|
"@coinbase/wallet-sdk": "^4.3.7",
|
|
103
108
|
"@solana/react-hooks": "^1.4.1",
|
|
104
109
|
"@types/react": "^19.2.16",
|
|
@@ -178,6 +183,11 @@
|
|
|
178
183
|
"require": "./dist/lib.cjs/vue/wagmi/index.js",
|
|
179
184
|
"types": "./dist/lib.cjs/types/vue/wagmi/index.d.ts"
|
|
180
185
|
},
|
|
186
|
+
"./connectors/base-account-connector": {
|
|
187
|
+
"import": "./dist/lib.esm/connectors/base-account-connector/index.js",
|
|
188
|
+
"require": "./dist/lib.cjs/connectors/base-account-connector/index.js",
|
|
189
|
+
"types": "./dist/lib.cjs/types/connectors/base-account-connector/index.d.ts"
|
|
190
|
+
},
|
|
181
191
|
"./connectors/coinbase-connector": {
|
|
182
192
|
"import": "./dist/lib.esm/connectors/coinbase-connector/index.js",
|
|
183
193
|
"require": "./dist/lib.cjs/connectors/coinbase-connector/index.js",
|
|
@@ -224,6 +234,9 @@
|
|
|
224
234
|
"vue/solana": [
|
|
225
235
|
"./dist/lib.cjs/types/vue/solana/index.d.ts"
|
|
226
236
|
],
|
|
237
|
+
"connectors/base-account-connector": [
|
|
238
|
+
"./dist/lib.cjs/types/connectors/base-account-connector/index.d.ts"
|
|
239
|
+
],
|
|
227
240
|
"connectors/coinbase-connector": [
|
|
228
241
|
"./dist/lib.cjs/types/connectors/coinbase-connector/index.d.ts"
|
|
229
242
|
],
|
|
@@ -252,5 +265,5 @@
|
|
|
252
265
|
"node": ">=22.x",
|
|
253
266
|
"npm": ">=10.x"
|
|
254
267
|
},
|
|
255
|
-
"gitHead": "
|
|
268
|
+
"gitHead": "770ae17551a78a42d8adc96e2b4252dbc69f3cab"
|
|
256
269
|
}
|