@web3auth/no-modal 10.0.0-beta.9 → 10.0.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/analytics.js +121 -0
- package/dist/lib.cjs/base/connector/constants.js +2 -1
- package/dist/lib.cjs/base/constants.js +13 -0
- package/dist/lib.cjs/base/cookie.js +38 -0
- package/dist/lib.cjs/base/deserialize.js +13 -0
- package/dist/lib.cjs/base/errors/index.js +2 -2
- package/dist/lib.cjs/base/utils.js +112 -9
- package/dist/lib.cjs/base/wallet/index.js +3 -3
- package/dist/lib.cjs/connectors/auth-connector/authConnector.js +40 -63
- package/dist/lib.cjs/connectors/base-evm-connector/baseEvmConnector.js +5 -2
- package/dist/lib.cjs/connectors/base-solana-connector/baseSolanaConnector.js +5 -2
- package/dist/lib.cjs/connectors/coinbase-connector/coinbaseConnector.js +11 -4
- package/dist/lib.cjs/connectors/injected-evm-connector/injectedEvmConnector.js +10 -4
- package/dist/lib.cjs/connectors/injected-solana-connector/walletStandardConnector.js +10 -5
- package/dist/lib.cjs/connectors/metamask-connector/metamaskConnector.js +10 -5
- package/dist/lib.cjs/connectors/wallet-connect-v2-connector/WalletConnectV2Provider.js +2 -1
- package/dist/lib.cjs/connectors/wallet-connect-v2-connector/config.js +11 -9
- package/dist/lib.cjs/connectors/wallet-connect-v2-connector/index.js +0 -1
- package/dist/lib.cjs/connectors/wallet-connect-v2-connector/walletConnectV2Connector.js +9 -4
- package/dist/lib.cjs/connectors/wallet-connect-v2-connector/walletConnectV2Utils.js +6 -5
- package/dist/lib.cjs/index.js +18 -1
- package/dist/lib.cjs/noModal.js +367 -101
- package/dist/lib.cjs/plugins/nft-checkout-plugin/plugin.js +3 -1
- package/dist/lib.cjs/plugins/wallet-services-plugin/plugin.js +3 -1
- package/dist/lib.cjs/providers/account-abstraction-provider/providers/AccountAbstractionProvider.js +10 -5
- package/dist/lib.cjs/providers/account-abstraction-provider/providers/utils.js +3 -2
- package/dist/lib.cjs/providers/base-provider/baseProvider.js +2 -1
- package/dist/lib.cjs/providers/ethereum-mpc-provider/providers/signingProviders/EthereumSigningProvider.js +2 -1
- package/dist/lib.cjs/providers/ethereum-mpc-provider/providers/signingProviders/signingUtils.js +2 -1
- package/dist/lib.cjs/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/formatter.js +2 -1
- package/dist/lib.cjs/providers/solana-provider/providers/injectedProviders/base/baseInjectedProvider.js +4 -2
- package/dist/lib.cjs/providers/solana-provider/providers/injectedProviders/walletStandardProvider.js +4 -2
- package/dist/lib.cjs/providers/xrpl-provider/providers/privateKeyProviders/xrplPrivateKeyProvider.js +3 -1
- package/dist/lib.cjs/react/context/WalletServicesInnerContext.js +4 -2
- package/dist/lib.cjs/react/context/Web3AuthInnerContext.js +21 -16
- package/dist/lib.cjs/react/hooks/useCheckout.js +4 -2
- package/dist/lib.cjs/react/hooks/useIdentityToken.js +3 -3
- package/dist/lib.cjs/react/hooks/useSwap.js +4 -2
- package/dist/lib.cjs/react/hooks/useWalletConnectScanner.js +4 -2
- package/dist/lib.cjs/react/hooks/useWalletUI.js +4 -2
- package/dist/lib.cjs/react/hooks/useWeb3AuthInner.js +4 -2
- package/dist/lib.cjs/react/solana/hooks/useSolanaWallet.js +3 -2
- package/dist/lib.cjs/react/wagmi/constants.js +16 -0
- package/dist/lib.cjs/react/wagmi/provider.js +14 -9
- package/dist/lib.cjs/types/base/analytics.d.ts +42 -0
- package/dist/lib.cjs/types/base/connector/baseConnector.d.ts +2 -2
- package/dist/lib.cjs/types/base/connector/constants.d.ts +1 -0
- package/dist/lib.cjs/types/base/connector/interfaces.d.ts +3 -2
- package/dist/lib.cjs/types/base/constants.d.ts +6 -0
- package/dist/lib.cjs/types/base/cookie.d.ts +10 -0
- package/dist/lib.cjs/types/base/core/IWeb3Auth.d.ts +31 -11
- package/dist/lib.cjs/types/base/deserialize.d.ts +3 -0
- package/dist/lib.cjs/types/base/errors/index.d.ts +1 -1
- package/dist/lib.cjs/types/base/index.d.ts +2 -0
- package/dist/lib.cjs/types/base/interfaces.d.ts +9 -1
- package/dist/lib.cjs/types/base/utils.d.ts +50 -3
- package/dist/lib.cjs/types/base/wallet/index.d.ts +4 -2
- package/dist/lib.cjs/types/connectors/auth-connector/authConnector.d.ts +1 -1
- package/dist/lib.cjs/types/connectors/auth-connector/interface.d.ts +1 -1
- package/dist/lib.cjs/types/connectors/base-evm-connector/baseEvmConnector.d.ts +2 -2
- package/dist/lib.cjs/types/connectors/base-solana-connector/baseSolanaConnector.d.ts +2 -2
- package/dist/lib.cjs/types/connectors/wallet-connect-v2-connector/config.d.ts +0 -1
- package/dist/lib.cjs/types/noModal.d.ts +18 -9
- package/dist/lib.cjs/types/providers/account-abstraction-provider/providers/AccountAbstractionProvider.d.ts +4 -1
- package/dist/lib.cjs/types/providers/ethereum-provider/providers/converter.d.ts +0 -1
- package/dist/lib.cjs/types/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/utils.d.ts +0 -1
- package/dist/lib.cjs/types/react/hooks/useIdentityToken.d.ts +2 -2
- package/dist/lib.cjs/types/react/interfaces.d.ts +2 -1
- package/dist/lib.cjs/types/react/wagmi/constants.d.ts +43 -0
- package/dist/lib.cjs/types/vue/composables/useIdentityToken.d.ts +1 -1
- package/dist/lib.cjs/types/vue/wagmi/constants.d.ts +43 -0
- package/dist/lib.cjs/types/vue/wagmi/provider.d.ts +1 -0
- package/dist/lib.cjs/vue/WalletServicesInnerProvider.js +4 -2
- package/dist/lib.cjs/vue/Web3AuthProvider.js +7 -1
- package/dist/lib.cjs/vue/composables/useCheckout.js +4 -2
- package/dist/lib.cjs/vue/composables/useEnableMFA.js +4 -2
- package/dist/lib.cjs/vue/composables/useIdentityToken.js +7 -5
- package/dist/lib.cjs/vue/composables/useManageMFA.js +5 -3
- package/dist/lib.cjs/vue/composables/useSwap.js +4 -2
- package/dist/lib.cjs/vue/composables/useSwitchChain.js +4 -2
- package/dist/lib.cjs/vue/composables/useWalletConnectScanner.js +4 -2
- package/dist/lib.cjs/vue/composables/useWalletUI.js +4 -2
- package/dist/lib.cjs/vue/composables/useWeb3AuthConnect.js +4 -2
- package/dist/lib.cjs/vue/composables/useWeb3AuthDisconnect.js +4 -2
- package/dist/lib.cjs/vue/composables/useWeb3AuthInner.js +4 -2
- package/dist/lib.cjs/vue/composables/useWeb3AuthUser.js +4 -2
- package/dist/lib.cjs/vue/solana/composables/useSolanaWallet.js +21 -15
- package/dist/lib.cjs/vue/wagmi/constants.js +16 -0
- package/dist/lib.cjs/vue/wagmi/provider.js +33 -15
- package/dist/lib.esm/base/analytics.js +117 -0
- package/dist/lib.esm/base/connector/constants.js +2 -1
- package/dist/lib.esm/base/constants.js +11 -1
- package/dist/lib.esm/base/cookie.js +34 -0
- package/dist/lib.esm/base/deserialize.js +11 -0
- package/dist/lib.esm/base/errors/index.js +2 -2
- package/dist/lib.esm/base/utils.js +104 -7
- package/dist/lib.esm/base/wallet/index.js +3 -3
- package/dist/lib.esm/connectors/auth-connector/authConnector.js +41 -65
- package/dist/lib.esm/connectors/base-evm-connector/baseEvmConnector.js +1 -1
- package/dist/lib.esm/connectors/base-solana-connector/baseSolanaConnector.js +1 -1
- package/dist/lib.esm/connectors/coinbase-connector/coinbaseConnector.js +9 -3
- package/dist/lib.esm/connectors/injected-evm-connector/injectedEvmConnector.js +7 -3
- package/dist/lib.esm/connectors/injected-solana-connector/walletStandardConnector.js +7 -4
- package/dist/lib.esm/connectors/metamask-connector/metamaskConnector.js +8 -4
- package/dist/lib.esm/connectors/wallet-connect-v2-connector/config.js +8 -7
- package/dist/lib.esm/connectors/wallet-connect-v2-connector/index.js +1 -1
- package/dist/lib.esm/connectors/wallet-connect-v2-connector/walletConnectV2Connector.js +8 -4
- package/dist/lib.esm/connectors/wallet-connect-v2-connector/walletConnectV2Utils.js +1 -1
- package/dist/lib.esm/index.js +5 -3
- package/dist/lib.esm/noModal.js +378 -107
- package/dist/lib.esm/providers/account-abstraction-provider/providers/AccountAbstractionProvider.js +8 -4
- package/dist/lib.esm/react/context/Web3AuthInnerContext.js +22 -17
- package/dist/lib.esm/react/hooks/useIdentityToken.js +3 -3
- package/dist/lib.esm/react/wagmi/constants.js +14 -0
- package/dist/lib.esm/react/wagmi/provider.js +13 -8
- package/dist/lib.esm/vue/Web3AuthProvider.js +7 -1
- package/dist/lib.esm/vue/composables/useIdentityToken.js +3 -3
- package/dist/lib.esm/vue/composables/useManageMFA.js +1 -1
- package/dist/lib.esm/vue/solana/composables/useSolanaWallet.js +18 -14
- package/dist/lib.esm/vue/wagmi/constants.js +14 -0
- package/dist/lib.esm/vue/wagmi/provider.js +33 -13
- package/dist/noModal.umd.min.js +1 -1
- package/dist/noModal.umd.min.js.LICENSE.txt +4 -6
- package/package.json +21 -19
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var _objectSpread = require('@babel/runtime/helpers/objectSpread2');
|
|
4
|
+
var _defineProperty = require('@babel/runtime/helpers/defineProperty');
|
|
5
|
+
var analyticsNext = require('@segment/analytics-next');
|
|
6
|
+
var loglevel = require('./loglevel.js');
|
|
7
|
+
|
|
8
|
+
const SEGMENT_WRITE_KEY = "f6LbNqCeVRf512ggdME4b6CyflhF1tsX";
|
|
9
|
+
class Analytics {
|
|
10
|
+
constructor() {
|
|
11
|
+
_defineProperty(this, "segment", void 0);
|
|
12
|
+
_defineProperty(this, "globalProperties", {});
|
|
13
|
+
_defineProperty(this, "enabled", true);
|
|
14
|
+
}
|
|
15
|
+
init() {
|
|
16
|
+
if (this.isSkipped()) {
|
|
17
|
+
return;
|
|
18
|
+
}
|
|
19
|
+
if (this.segment) {
|
|
20
|
+
throw new Error("Analytics already initialized");
|
|
21
|
+
}
|
|
22
|
+
this.segment = new analyticsNext.AnalyticsBrowser();
|
|
23
|
+
this.segment.load({
|
|
24
|
+
writeKey: SEGMENT_WRITE_KEY
|
|
25
|
+
}, {
|
|
26
|
+
user: {
|
|
27
|
+
cookie: {
|
|
28
|
+
key: "web3auth_ajs_user_id"
|
|
29
|
+
},
|
|
30
|
+
localStorage: {
|
|
31
|
+
key: "web3auth_ajs_user_traits"
|
|
32
|
+
}
|
|
33
|
+
},
|
|
34
|
+
globalAnalyticsKey: "web3auth_analytics"
|
|
35
|
+
}).then(() => {
|
|
36
|
+
loglevel.log.debug("Analytics initialized");
|
|
37
|
+
return true;
|
|
38
|
+
}).catch(error => {
|
|
39
|
+
loglevel.log.error("Failed to initialize Analytics", error);
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
enable() {
|
|
43
|
+
this.enabled = true;
|
|
44
|
+
}
|
|
45
|
+
disable() {
|
|
46
|
+
this.enabled = false;
|
|
47
|
+
}
|
|
48
|
+
setGlobalProperties(properties) {
|
|
49
|
+
this.globalProperties = _objectSpread(_objectSpread({}, this.globalProperties), properties);
|
|
50
|
+
}
|
|
51
|
+
async identify(userId, traits) {
|
|
52
|
+
if (!this.enabled) return;
|
|
53
|
+
if (this.isSkipped()) return;
|
|
54
|
+
try {
|
|
55
|
+
return this.getSegment().identify(userId, _objectSpread({}, traits));
|
|
56
|
+
} catch (error) {
|
|
57
|
+
loglevel.log.error(`Failed to identify user ${userId} in analytics`, error);
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
async track(event, properties) {
|
|
61
|
+
if (!this.enabled) return;
|
|
62
|
+
if (this.isSkipped()) return;
|
|
63
|
+
try {
|
|
64
|
+
return this.getSegment().track(event, _objectSpread(_objectSpread({}, properties), this.globalProperties));
|
|
65
|
+
} catch (error) {
|
|
66
|
+
loglevel.log.error(`Failed to track event ${event}`, error);
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
getSegment() {
|
|
70
|
+
if (!this.segment) {
|
|
71
|
+
loglevel.log.error("Analytics not initialized. Call Analytics.init() first.");
|
|
72
|
+
throw new Error("Analytics not initialized. Call Analytics.init() first.");
|
|
73
|
+
}
|
|
74
|
+
return this.segment;
|
|
75
|
+
}
|
|
76
|
+
isSkipped() {
|
|
77
|
+
const dappOrigin = window.location.origin;
|
|
78
|
+
// skip if the protocol is not http or https
|
|
79
|
+
if (dappOrigin.startsWith("http://")) {
|
|
80
|
+
return true;
|
|
81
|
+
}
|
|
82
|
+
// skip if dapp contains localhost
|
|
83
|
+
if (dappOrigin.includes("localhost")) {
|
|
84
|
+
return true;
|
|
85
|
+
}
|
|
86
|
+
return false;
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
const ANALYTICS_EVENTS = {
|
|
90
|
+
SDK_INITIALIZATION_COMPLETED: "SDK Initialization Completed",
|
|
91
|
+
SDK_INITIALIZATION_FAILED: "SDK Initialization Failed",
|
|
92
|
+
CONNECTION_STARTED: "Connection Started",
|
|
93
|
+
CONNECTION_COMPLETED: "Connection Completed",
|
|
94
|
+
CONNECTION_FAILED: "Connection Failed",
|
|
95
|
+
IDENTITY_TOKEN_STARTED: "Identity Token Started",
|
|
96
|
+
IDENTITY_TOKEN_COMPLETED: "Identity Token Completed",
|
|
97
|
+
IDENTITY_TOKEN_FAILED: "Identity Token Failed",
|
|
98
|
+
MFA_ENABLEMENT_STARTED: "MFA Enablement Started",
|
|
99
|
+
MFA_ENABLEMENT_COMPLETED: "MFA Enablement Completed",
|
|
100
|
+
MFA_ENABLEMENT_FAILED: "MFA Enablement Failed",
|
|
101
|
+
MFA_MANAGEMENT_SELECTED: "MFA Management Selected",
|
|
102
|
+
MFA_MANAGEMENT_FAILED: "MFA Management Failed",
|
|
103
|
+
LOGIN_MODAL_OPENED: "Login Modal Opened",
|
|
104
|
+
LOGIN_MODAL_CLOSED: "Login Modal Closed",
|
|
105
|
+
SOCIAL_LOGIN_SELECTED: "Social Login Selected",
|
|
106
|
+
EXTERNAL_WALLET_SELECTED: "External Wallet Selected",
|
|
107
|
+
EXTERNAL_WALLET_LIST_EXPANDED: "External Wallet List Expanded"
|
|
108
|
+
};
|
|
109
|
+
const ANALYTICS_INTEGRATION_TYPE = {
|
|
110
|
+
REACT_HOOKS: "React Hooks",
|
|
111
|
+
VUE_COMPOSABLES: "Vue Composables"
|
|
112
|
+
};
|
|
113
|
+
const ANALYTICS_SDK_TYPE = {
|
|
114
|
+
WEB_NO_MODAL: "Web NoModal",
|
|
115
|
+
WEB_MODAL: "Web Modal"
|
|
116
|
+
};
|
|
117
|
+
|
|
118
|
+
exports.ANALYTICS_EVENTS = ANALYTICS_EVENTS;
|
|
119
|
+
exports.ANALYTICS_INTEGRATION_TYPE = ANALYTICS_INTEGRATION_TYPE;
|
|
120
|
+
exports.ANALYTICS_SDK_TYPE = ANALYTICS_SDK_TYPE;
|
|
121
|
+
exports.Analytics = Analytics;
|
|
@@ -15,7 +15,8 @@ const CONNECTOR_EVENTS = _objectSpread(_objectSpread({}, CONNECTOR_STATUS), {},
|
|
|
15
15
|
CONNECTOR_DATA_UPDATED: "connector_data_updated",
|
|
16
16
|
CACHE_CLEAR: "cache_clear",
|
|
17
17
|
CONNECTORS_UPDATED: "connectors_updated",
|
|
18
|
-
MFA_ENABLED: "mfa_enabled"
|
|
18
|
+
MFA_ENABLED: "mfa_enabled",
|
|
19
|
+
REHYDRATION_ERROR: "rehydration_error"
|
|
19
20
|
});
|
|
20
21
|
const CONNECTOR_CATEGORY = {
|
|
21
22
|
EXTERNAL: "external",
|
|
@@ -13,7 +13,20 @@ const WIDGET_TYPE = {
|
|
|
13
13
|
MODAL: "modal",
|
|
14
14
|
EMBED: "embed"
|
|
15
15
|
};
|
|
16
|
+
const WEB3AUTH_STATE_STORAGE_KEY = "Web3Auth-state";
|
|
17
|
+
const LOGIN_MODE = {
|
|
18
|
+
MODAL: "modal",
|
|
19
|
+
NO_MODAL: "no-modal"
|
|
20
|
+
};
|
|
21
|
+
const SOLANA_CAIP_CHAIN_MAP = {
|
|
22
|
+
"0x65": "5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp",
|
|
23
|
+
"0x66": "4uhcVJyU9pJkvQyS88uRDiswHXSCkY3z",
|
|
24
|
+
"0x67": "EtWTRABZaYq6iMfeYKouRu166VU2xqa1"
|
|
25
|
+
};
|
|
16
26
|
|
|
27
|
+
exports.LOGIN_MODE = LOGIN_MODE;
|
|
17
28
|
exports.MODAL_SIGN_IN_METHODS = MODAL_SIGN_IN_METHODS;
|
|
18
29
|
exports.SMART_ACCOUNT_WALLET_SCOPE = SMART_ACCOUNT_WALLET_SCOPE;
|
|
30
|
+
exports.SOLANA_CAIP_CHAIN_MAP = SOLANA_CAIP_CHAIN_MAP;
|
|
31
|
+
exports.WEB3AUTH_STATE_STORAGE_KEY = WEB3AUTH_STATE_STORAGE_KEY;
|
|
19
32
|
exports.WIDGET_TYPE = WIDGET_TYPE;
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var constants = require('./constants.js');
|
|
4
|
+
var deserialize = require('./deserialize.js');
|
|
5
|
+
|
|
6
|
+
const cookieStorage = options => ({
|
|
7
|
+
getItem(key) {
|
|
8
|
+
if (typeof window === "undefined") return null;
|
|
9
|
+
const value = parseCookie(document.cookie, key);
|
|
10
|
+
return value !== null && value !== void 0 ? value : null;
|
|
11
|
+
},
|
|
12
|
+
setItem(key, value) {
|
|
13
|
+
if (typeof window === "undefined") return;
|
|
14
|
+
let cookieString = `${key}=${value};path=/;samesite=Lax`;
|
|
15
|
+
if (options !== null && options !== void 0 && options.expiry && typeof options.expiry === "number") cookieString += `; expires=${new Date(Date.now() + options.expiry).toUTCString()}`;
|
|
16
|
+
if (process.env.NODE_ENV === "production") cookieString += "; secure";
|
|
17
|
+
document.cookie = cookieString;
|
|
18
|
+
},
|
|
19
|
+
removeItem(key) {
|
|
20
|
+
if (typeof window === "undefined") return;
|
|
21
|
+
document.cookie = `${key}=;max-age=-1;path=/`;
|
|
22
|
+
}
|
|
23
|
+
});
|
|
24
|
+
function cookieToWeb3AuthState(cookie) {
|
|
25
|
+
if (!cookie) return undefined;
|
|
26
|
+
const parsed = parseCookie(cookie, constants.WEB3AUTH_STATE_STORAGE_KEY);
|
|
27
|
+
if (!parsed) return undefined;
|
|
28
|
+
return deserialize.deserialize(parsed);
|
|
29
|
+
}
|
|
30
|
+
function parseCookie(cookie, key) {
|
|
31
|
+
const keyValue = cookie.split("; ").find(x => x.startsWith(`${key}=`));
|
|
32
|
+
if (!keyValue) return undefined;
|
|
33
|
+
return keyValue.substring(key.length + 1);
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
exports.cookieStorage = cookieStorage;
|
|
37
|
+
exports.cookieToWeb3AuthState = cookieToWeb3AuthState;
|
|
38
|
+
exports.parseCookie = parseCookie;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
function deserialize(value, reviver) {
|
|
4
|
+
return JSON.parse(value, (key, value_) => {
|
|
5
|
+
var _value, _value2, _reviver;
|
|
6
|
+
let value = value_;
|
|
7
|
+
if (((_value = value) === null || _value === void 0 ? void 0 : _value.__type) === "bigint") value = BigInt(value.value);
|
|
8
|
+
if (((_value2 = value) === null || _value2 === void 0 ? void 0 : _value2.__type) === "Map") value = new Map(value.value);
|
|
9
|
+
return (_reviver = void 0 ) !== null && _reviver !== void 0 ? _reviver : value;
|
|
10
|
+
});
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
exports.deserialize = deserialize;
|
|
@@ -131,7 +131,7 @@ class WalletLoginError extends Web3AuthError {
|
|
|
131
131
|
static unsupportedOperation(extraMessage = "", cause) {
|
|
132
132
|
return WalletLoginError.fromCode(5117, extraMessage, cause);
|
|
133
133
|
}
|
|
134
|
-
static
|
|
134
|
+
static sfaKeyNotFound(extraMessage = "", cause) {
|
|
135
135
|
return WalletLoginError.fromCode(5118, extraMessage, cause);
|
|
136
136
|
}
|
|
137
137
|
static userNotLoggedIn(extraMessage = "", cause) {
|
|
@@ -147,7 +147,7 @@ _defineProperty(WalletLoginError, "messages", {
|
|
|
147
147
|
5115: "User has already enabled mfa, please use the @web3auth/web3auth-web sdk for login with mfa",
|
|
148
148
|
5116: "Chain config has not been added. Please add the chain config before calling switchChain",
|
|
149
149
|
5117: "Unsupported operation",
|
|
150
|
-
5118: "
|
|
150
|
+
5118: "useSFAKey flag is enabled but SFA key is not available",
|
|
151
151
|
5119: "User not logged in."
|
|
152
152
|
});
|
|
153
153
|
class WalletOperationsError extends Web3AuthError {
|
|
@@ -1,23 +1,21 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
var baseControllers = require('@toruslabs/base-controllers');
|
|
4
|
-
var constants = require('@toruslabs/constants');
|
|
4
|
+
var constants$1 = require('@toruslabs/constants');
|
|
5
5
|
var httpHelpers = require('@toruslabs/http-helpers');
|
|
6
|
-
var auth = require('@web3auth/auth');
|
|
7
6
|
require('@babel/runtime/helpers/defineProperty');
|
|
8
|
-
require('
|
|
7
|
+
var auth = require('@web3auth/auth');
|
|
8
|
+
var index = require('./errors/index.js');
|
|
9
9
|
require('./wallet/index.js');
|
|
10
10
|
require('./connector/constants.js');
|
|
11
11
|
require('jwt-decode');
|
|
12
|
+
var constants = require('./constants.js');
|
|
12
13
|
|
|
13
14
|
const isHexStrict = hex => {
|
|
14
15
|
return (typeof hex === "string" || typeof hex === "number") && /^(-)?0x[0-9a-f]*$/i.test(hex);
|
|
15
16
|
};
|
|
16
|
-
const signerHost = (web3AuthNetwork = auth.WEB3AUTH_NETWORK.SAPPHIRE_MAINNET
|
|
17
|
-
|
|
18
|
-
return "https://test-signer.web3auth.io";
|
|
19
|
-
}
|
|
20
|
-
return constants.SIGNER_MAP[web3AuthNetwork];
|
|
17
|
+
const signerHost = (web3AuthNetwork = auth.WEB3AUTH_NETWORK.SAPPHIRE_MAINNET) => {
|
|
18
|
+
return constants$1.SIGNER_MAP[web3AuthNetwork];
|
|
21
19
|
};
|
|
22
20
|
const fetchProjectConfig = async ({
|
|
23
21
|
clientId,
|
|
@@ -25,7 +23,7 @@ const fetchProjectConfig = async ({
|
|
|
25
23
|
aaProvider,
|
|
26
24
|
authBuildEnv
|
|
27
25
|
}) => {
|
|
28
|
-
const url = new URL(`${signerHost(web3AuthNetwork
|
|
26
|
+
const url = new URL(`${signerHost(web3AuthNetwork)}/api/v2/configuration`);
|
|
29
27
|
url.searchParams.append("project_id", clientId);
|
|
30
28
|
url.searchParams.append("network", web3AuthNetwork);
|
|
31
29
|
if (authBuildEnv) url.searchParams.append("build_env", authBuildEnv);
|
|
@@ -82,7 +80,104 @@ function withAbort(fn, signal, onAbort) {
|
|
|
82
80
|
});
|
|
83
81
|
});
|
|
84
82
|
}
|
|
83
|
+
const isBrowser = () => typeof window !== "undefined" && typeof document !== "undefined";
|
|
85
84
|
const fromViemChain = fromWagmiChain;
|
|
85
|
+
const getWhitelabelAnalyticsProperties = uiConfig => {
|
|
86
|
+
var _uiConfig$theme, _uiConfig$theme2;
|
|
87
|
+
return {
|
|
88
|
+
whitelabel_app_name: uiConfig === null || uiConfig === void 0 ? void 0 : uiConfig.appName,
|
|
89
|
+
whitelabel_app_url: uiConfig === null || uiConfig === void 0 ? void 0 : uiConfig.appUrl,
|
|
90
|
+
whitelabel_logo_light_enabled: Boolean(uiConfig === null || uiConfig === void 0 ? void 0 : uiConfig.logoLight),
|
|
91
|
+
whitelabel_logo_dark_enabled: Boolean(uiConfig === null || uiConfig === void 0 ? void 0 : uiConfig.logoDark),
|
|
92
|
+
whitelabel_default_language: uiConfig === null || uiConfig === void 0 ? void 0 : uiConfig.defaultLanguage,
|
|
93
|
+
whitelabel_theme_mode: uiConfig === null || uiConfig === void 0 ? void 0 : uiConfig.mode,
|
|
94
|
+
whitelabel_use_logo_loader: uiConfig === null || uiConfig === void 0 ? void 0 : uiConfig.useLogoLoader,
|
|
95
|
+
whitelabel_theme_primary: uiConfig === null || uiConfig === void 0 || (_uiConfig$theme = uiConfig.theme) === null || _uiConfig$theme === void 0 ? void 0 : _uiConfig$theme.primary,
|
|
96
|
+
whitelabel_theme_on_primary: uiConfig === null || uiConfig === void 0 || (_uiConfig$theme2 = uiConfig.theme) === null || _uiConfig$theme2 === void 0 ? void 0 : _uiConfig$theme2.onPrimary,
|
|
97
|
+
whitelabel_tnc_link_enabled: Boolean(uiConfig === null || uiConfig === void 0 ? void 0 : uiConfig.tncLink),
|
|
98
|
+
whitelabel_privacy_policy_enabled: Boolean(uiConfig === null || uiConfig === void 0 ? void 0 : uiConfig.privacyPolicy)
|
|
99
|
+
};
|
|
100
|
+
};
|
|
101
|
+
const getAaAnalyticsProperties = accountAbstractionConfig => {
|
|
102
|
+
var _accountAbstractionCo, _accountAbstractionCo2, _accountAbstractionCo3, _accountAbstractionCo4, _accountAbstractionCo5;
|
|
103
|
+
const bundlerHostnames = Array.from(new Set(accountAbstractionConfig === null || accountAbstractionConfig === void 0 || (_accountAbstractionCo = accountAbstractionConfig.chains) === null || _accountAbstractionCo === void 0 ? void 0 : _accountAbstractionCo.map(chain => {
|
|
104
|
+
var _chain$bundlerConfig;
|
|
105
|
+
return getHostname((_chain$bundlerConfig = chain.bundlerConfig) === null || _chain$bundlerConfig === void 0 ? void 0 : _chain$bundlerConfig.url);
|
|
106
|
+
}).filter(Boolean)));
|
|
107
|
+
const paymasterHostnames = Array.from(new Set(accountAbstractionConfig === null || accountAbstractionConfig === void 0 || (_accountAbstractionCo2 = accountAbstractionConfig.chains) === null || _accountAbstractionCo2 === void 0 ? void 0 : _accountAbstractionCo2.map(chain => {
|
|
108
|
+
var _chain$paymasterConfi;
|
|
109
|
+
return getHostname((_chain$paymasterConfi = chain.paymasterConfig) === null || _chain$paymasterConfi === void 0 ? void 0 : _chain$paymasterConfi.url);
|
|
110
|
+
}).filter(Boolean)));
|
|
111
|
+
return {
|
|
112
|
+
aa_smart_account_type: accountAbstractionConfig === null || accountAbstractionConfig === void 0 ? void 0 : accountAbstractionConfig.smartAccountType,
|
|
113
|
+
aa_chain_ids: accountAbstractionConfig === null || accountAbstractionConfig === void 0 || (_accountAbstractionCo3 = accountAbstractionConfig.chains) === null || _accountAbstractionCo3 === void 0 ? void 0 : _accountAbstractionCo3.map(chain => getCaipChainId({
|
|
114
|
+
chainId: chain.chainId,
|
|
115
|
+
chainNamespace: baseControllers.CHAIN_NAMESPACES.EIP155
|
|
116
|
+
})),
|
|
117
|
+
aa_bundler_urls: bundlerHostnames,
|
|
118
|
+
aa_paymaster_urls: paymasterHostnames,
|
|
119
|
+
aa_paymaster_enabled: paymasterHostnames.length > 0,
|
|
120
|
+
aa_paymaster_context_enabled: accountAbstractionConfig === null || accountAbstractionConfig === void 0 || (_accountAbstractionCo4 = accountAbstractionConfig.chains) === null || _accountAbstractionCo4 === void 0 ? void 0 : _accountAbstractionCo4.some(chain => {
|
|
121
|
+
var _chain$bundlerConfig2;
|
|
122
|
+
return (_chain$bundlerConfig2 = chain.bundlerConfig) === null || _chain$bundlerConfig2 === void 0 ? void 0 : _chain$bundlerConfig2.paymasterContext;
|
|
123
|
+
}),
|
|
124
|
+
aa_erc20_paymaster_enabled: accountAbstractionConfig === null || accountAbstractionConfig === void 0 || (_accountAbstractionCo5 = accountAbstractionConfig.chains) === null || _accountAbstractionCo5 === void 0 ? void 0 : _accountAbstractionCo5.some(chain => {
|
|
125
|
+
var _chain$bundlerConfig3;
|
|
126
|
+
return (_chain$bundlerConfig3 = chain.bundlerConfig) === null || _chain$bundlerConfig3 === void 0 || (_chain$bundlerConfig3 = _chain$bundlerConfig3.paymasterContext) === null || _chain$bundlerConfig3 === void 0 ? void 0 : _chain$bundlerConfig3.token;
|
|
127
|
+
})
|
|
128
|
+
};
|
|
129
|
+
};
|
|
130
|
+
const getWalletServicesAnalyticsProperties = walletServicesConfig => {
|
|
131
|
+
var _walletServicesConfig, _walletServicesConfig2, _walletServicesConfig3, _walletServicesConfig4, _walletServicesConfig5, _walletServicesConfig6, _walletServicesConfig7, _walletServicesConfig8, _walletServicesConfig9, _walletServicesConfig0, _walletServicesConfig1;
|
|
132
|
+
return {
|
|
133
|
+
ws_confirmation_strategy: walletServicesConfig === null || walletServicesConfig === void 0 ? void 0 : walletServicesConfig.confirmationStrategy,
|
|
134
|
+
ws_enable_key_export: walletServicesConfig === null || walletServicesConfig === void 0 ? void 0 : walletServicesConfig.enableKeyExport,
|
|
135
|
+
ws_show_widget_button: walletServicesConfig === null || walletServicesConfig === void 0 || (_walletServicesConfig = walletServicesConfig.whiteLabel) === null || _walletServicesConfig === void 0 ? void 0 : _walletServicesConfig.showWidgetButton,
|
|
136
|
+
ws_button_position: walletServicesConfig === null || walletServicesConfig === void 0 || (_walletServicesConfig2 = walletServicesConfig.whiteLabel) === null || _walletServicesConfig2 === void 0 ? void 0 : _walletServicesConfig2.buttonPosition,
|
|
137
|
+
ws_hide_nft_display: walletServicesConfig === null || walletServicesConfig === void 0 || (_walletServicesConfig3 = walletServicesConfig.whiteLabel) === null || _walletServicesConfig3 === void 0 ? void 0 : _walletServicesConfig3.hideNftDisplay,
|
|
138
|
+
ws_hide_token_display: walletServicesConfig === null || walletServicesConfig === void 0 || (_walletServicesConfig4 = walletServicesConfig.whiteLabel) === null || _walletServicesConfig4 === void 0 ? void 0 : _walletServicesConfig4.hideTokenDisplay,
|
|
139
|
+
ws_hide_transfers: walletServicesConfig === null || walletServicesConfig === void 0 || (_walletServicesConfig5 = walletServicesConfig.whiteLabel) === null || _walletServicesConfig5 === void 0 ? void 0 : _walletServicesConfig5.hideTransfers,
|
|
140
|
+
ws_hide_topup: walletServicesConfig === null || walletServicesConfig === void 0 || (_walletServicesConfig6 = walletServicesConfig.whiteLabel) === null || _walletServicesConfig6 === void 0 ? void 0 : _walletServicesConfig6.hideTopup,
|
|
141
|
+
ws_hide_receive: walletServicesConfig === null || walletServicesConfig === void 0 || (_walletServicesConfig7 = walletServicesConfig.whiteLabel) === null || _walletServicesConfig7 === void 0 ? void 0 : _walletServicesConfig7.hideReceive,
|
|
142
|
+
ws_hide_swap: walletServicesConfig === null || walletServicesConfig === void 0 || (_walletServicesConfig8 = walletServicesConfig.whiteLabel) === null || _walletServicesConfig8 === void 0 ? void 0 : _walletServicesConfig8.hideSwap,
|
|
143
|
+
ws_hide_show_all_tokens: walletServicesConfig === null || walletServicesConfig === void 0 || (_walletServicesConfig9 = walletServicesConfig.whiteLabel) === null || _walletServicesConfig9 === void 0 ? void 0 : _walletServicesConfig9.hideShowAllTokens,
|
|
144
|
+
ws_hide_wallet_connect: walletServicesConfig === null || walletServicesConfig === void 0 || (_walletServicesConfig0 = walletServicesConfig.whiteLabel) === null || _walletServicesConfig0 === void 0 ? void 0 : _walletServicesConfig0.hideWalletConnect,
|
|
145
|
+
ws_default_portfolio: walletServicesConfig === null || walletServicesConfig === void 0 || (_walletServicesConfig1 = walletServicesConfig.whiteLabel) === null || _walletServicesConfig1 === void 0 ? void 0 : _walletServicesConfig1.defaultPortfolio
|
|
146
|
+
};
|
|
147
|
+
};
|
|
148
|
+
const sdkVersion = "10.0.0";
|
|
149
|
+
const getErrorAnalyticsProperties = error => {
|
|
150
|
+
try {
|
|
151
|
+
const code = error instanceof index.Web3AuthError ? error.code : error === null || error === void 0 ? void 0 : error.code;
|
|
152
|
+
const message = error instanceof Error ? error.message : (error === null || error === void 0 ? void 0 : error.message) || (error === null || error === void 0 ? void 0 : error.toString());
|
|
153
|
+
return {
|
|
154
|
+
error_message: message,
|
|
155
|
+
error_code: code
|
|
156
|
+
};
|
|
157
|
+
} catch {
|
|
158
|
+
return {
|
|
159
|
+
error_message: "Unknown error",
|
|
160
|
+
error_code: undefined
|
|
161
|
+
};
|
|
162
|
+
}
|
|
163
|
+
};
|
|
164
|
+
const getHostname = url => {
|
|
165
|
+
try {
|
|
166
|
+
return new URL(url).hostname;
|
|
167
|
+
} catch {
|
|
168
|
+
return "";
|
|
169
|
+
}
|
|
170
|
+
};
|
|
171
|
+
const getCaipChainId = chain => {
|
|
172
|
+
if (chain.chainNamespace === baseControllers.CHAIN_NAMESPACES.EIP155) {
|
|
173
|
+
return `${chain.chainNamespace}:${parseInt(chain.chainId, 16)}`;
|
|
174
|
+
}
|
|
175
|
+
if (chain.chainNamespace === baseControllers.CHAIN_NAMESPACES.SOLANA) {
|
|
176
|
+
return `${chain.chainNamespace}:${constants.SOLANA_CAIP_CHAIN_MAP[chain.chainId]}`;
|
|
177
|
+
}
|
|
178
|
+
// for other chain namespaces, we just return the chainId as is
|
|
179
|
+
return `${chain.chainNamespace}:${chain.chainId}`;
|
|
180
|
+
};
|
|
86
181
|
|
|
87
182
|
Object.defineProperty(exports, "cloneDeep", {
|
|
88
183
|
enumerable: true,
|
|
@@ -92,7 +187,15 @@ exports.fetchProjectConfig = fetchProjectConfig;
|
|
|
92
187
|
exports.fetchWalletRegistry = fetchWalletRegistry;
|
|
93
188
|
exports.fromViemChain = fromViemChain;
|
|
94
189
|
exports.fromWagmiChain = fromWagmiChain;
|
|
190
|
+
exports.getAaAnalyticsProperties = getAaAnalyticsProperties;
|
|
191
|
+
exports.getCaipChainId = getCaipChainId;
|
|
192
|
+
exports.getErrorAnalyticsProperties = getErrorAnalyticsProperties;
|
|
193
|
+
exports.getHostname = getHostname;
|
|
194
|
+
exports.getWalletServicesAnalyticsProperties = getWalletServicesAnalyticsProperties;
|
|
195
|
+
exports.getWhitelabelAnalyticsProperties = getWhitelabelAnalyticsProperties;
|
|
196
|
+
exports.isBrowser = isBrowser;
|
|
95
197
|
exports.isHexStrict = isHexStrict;
|
|
96
198
|
exports.normalizeWalletName = normalizeWalletName;
|
|
199
|
+
exports.sdkVersion = sdkVersion;
|
|
97
200
|
exports.signerHost = signerHost;
|
|
98
201
|
exports.withAbort = withAbort;
|
|
@@ -4,12 +4,12 @@ var _objectSpread = require('@babel/runtime/helpers/objectSpread2');
|
|
|
4
4
|
|
|
5
5
|
const MULTI_CHAIN_CONNECTORS = {
|
|
6
6
|
AUTH: "auth",
|
|
7
|
-
WALLET_CONNECT_V2: "wallet-connect-v2"
|
|
7
|
+
WALLET_CONNECT_V2: "wallet-connect-v2",
|
|
8
|
+
METAMASK: "metamask"
|
|
8
9
|
};
|
|
9
10
|
const SOLANA_CONNECTORS = _objectSpread({}, MULTI_CHAIN_CONNECTORS);
|
|
10
11
|
const EVM_CONNECTORS = _objectSpread({
|
|
11
|
-
COINBASE: "coinbase"
|
|
12
|
-
METAMASK: "metamask"
|
|
12
|
+
COINBASE: "coinbase"
|
|
13
13
|
}, MULTI_CHAIN_CONNECTORS);
|
|
14
14
|
const WALLET_CONNECTORS = _objectSpread(_objectSpread({}, EVM_CONNECTORS), SOLANA_CONNECTORS);
|
|
15
15
|
const CONNECTOR_NAMES = {
|
|
@@ -2,18 +2,19 @@
|
|
|
2
2
|
|
|
3
3
|
var _objectSpread = require('@babel/runtime/helpers/objectSpread2');
|
|
4
4
|
var _defineProperty = require('@babel/runtime/helpers/defineProperty');
|
|
5
|
-
var baseControllers = require('@toruslabs/base-controllers');
|
|
6
5
|
var securePubSub = require('@toruslabs/secure-pub-sub');
|
|
7
6
|
var auth = require('@web3auth/auth');
|
|
8
7
|
var deepmerge = require('deepmerge');
|
|
8
|
+
require('@segment/analytics-next');
|
|
9
|
+
var loglevel = require('../../base/loglevel.js');
|
|
9
10
|
var IChainInterface = require('../../base/chain/IChainInterface.js');
|
|
10
11
|
var baseConnector = require('../../base/connector/baseConnector.js');
|
|
11
12
|
var constants = require('../../base/connector/constants.js');
|
|
12
13
|
require('jwt-decode');
|
|
13
14
|
var index$1 = require('../../base/errors/index.js');
|
|
14
|
-
var loglevel = require('../../base/loglevel.js');
|
|
15
15
|
require('../../base/plugin/errors.js');
|
|
16
16
|
require('../../base/plugin/IPlugin.js');
|
|
17
|
+
var baseControllers = require('@toruslabs/base-controllers');
|
|
17
18
|
require('@toruslabs/constants');
|
|
18
19
|
require('@toruslabs/http-helpers');
|
|
19
20
|
var index = require('../../base/wallet/index.js');
|
|
@@ -75,13 +76,14 @@ class AuthConnector extends baseConnector.BaseConnector {
|
|
|
75
76
|
const isRedirectResult = this.authOptions.uxMode === auth.UX_MODE.REDIRECT;
|
|
76
77
|
this.authOptions = _objectSpread(_objectSpread({}, this.authOptions), {}, {
|
|
77
78
|
replaceUrlOnRedirect: isRedirectResult,
|
|
78
|
-
useCoreKitKey: this.coreOptions.
|
|
79
|
+
useCoreKitKey: this.coreOptions.useSFAKey
|
|
79
80
|
});
|
|
80
81
|
this.authInstance = new auth.Auth(_objectSpread(_objectSpread({}, this.authOptions), {}, {
|
|
81
82
|
clientId: this.coreOptions.clientId,
|
|
82
83
|
network: this.coreOptions.web3AuthNetwork,
|
|
83
84
|
sdkMode: auth.SDK_MODE.IFRAME,
|
|
84
|
-
authConnectionConfig: this.authConnectionConfig.filter(x => !x.isDefault)
|
|
85
|
+
authConnectionConfig: this.authConnectionConfig.filter(x => !x.isDefault),
|
|
86
|
+
mfaSettings: this.coreOptions.mfaSettings
|
|
85
87
|
}));
|
|
86
88
|
loglevel.log.debug("initializing auth connector init", this.authOptions);
|
|
87
89
|
// making it async here to initialize provider.
|
|
@@ -131,11 +133,11 @@ class AuthConnector extends baseConnector.BaseConnector {
|
|
|
131
133
|
}
|
|
132
134
|
}
|
|
133
135
|
// wait for auth instance to be ready.
|
|
136
|
+
loglevel.log.debug("initializing auth connector");
|
|
134
137
|
await authInstancePromise;
|
|
135
138
|
this.status = constants.CONNECTOR_STATUS.READY;
|
|
136
139
|
this.emit(constants.CONNECTOR_EVENTS.READY, index.WALLET_CONNECTORS.AUTH);
|
|
137
140
|
try {
|
|
138
|
-
loglevel.log.debug("initializing auth connector");
|
|
139
141
|
const {
|
|
140
142
|
sessionId
|
|
141
143
|
} = this.authInstance || {};
|
|
@@ -145,10 +147,14 @@ class AuthConnector extends baseConnector.BaseConnector {
|
|
|
145
147
|
await this.connect({
|
|
146
148
|
chainId: options.chainId
|
|
147
149
|
});
|
|
150
|
+
} else if (!sessionId && options.autoConnect) {
|
|
151
|
+
// if here, this means that the connector is cached but the sessionId is not available.
|
|
152
|
+
// this can happen if the sessionId has expired.
|
|
153
|
+
// we are throwing an error to reset the cached state.
|
|
154
|
+
throw index$1.WalletLoginError.connectionError("Failed to rehydrate");
|
|
148
155
|
}
|
|
149
156
|
} catch (error) {
|
|
150
|
-
|
|
151
|
-
this.emit(constants.CONNECTOR_EVENTS.ERRORED, error);
|
|
157
|
+
this.emit(constants.CONNECTOR_EVENTS.REHYDRATION_ERROR, error);
|
|
152
158
|
}
|
|
153
159
|
}
|
|
154
160
|
async connect(params) {
|
|
@@ -226,7 +232,7 @@ class AuthConnector extends baseConnector.BaseConnector {
|
|
|
226
232
|
this.rehydrated = false;
|
|
227
233
|
this.emit(constants.CONNECTOR_EVENTS.DISCONNECTED);
|
|
228
234
|
}
|
|
229
|
-
async
|
|
235
|
+
async getIdentityToken() {
|
|
230
236
|
if (this.status !== constants.CONNECTOR_STATUS.CONNECTED) throw index$1.WalletLoginError.notConnectedError("Not connected with wallet, Please login/connect first");
|
|
231
237
|
const userInfo = await this.getUserInfo();
|
|
232
238
|
return {
|
|
@@ -288,13 +294,13 @@ class AuthConnector extends baseConnector.BaseConnector {
|
|
|
288
294
|
_getFinalPrivKey() {
|
|
289
295
|
if (!this.authInstance) return "";
|
|
290
296
|
let finalPrivKey = this.authInstance.privKey;
|
|
291
|
-
// coreKitKey is available only for custom
|
|
292
|
-
if (this.coreOptions.
|
|
297
|
+
// coreKitKey is available only for custom connections by default
|
|
298
|
+
if (this.coreOptions.useSFAKey) {
|
|
293
299
|
// this is to check if the user has already logged in but coreKitKey is not available.
|
|
294
|
-
// when
|
|
300
|
+
// when useSFAKey is set to true.
|
|
295
301
|
// This is to ensure that when there is no user session active, we don't throw an exception.
|
|
296
302
|
if (this.authInstance.privKey && !this.authInstance.coreKitKey) {
|
|
297
|
-
throw index$1.WalletLoginError.
|
|
303
|
+
throw index$1.WalletLoginError.sfaKeyNotFound();
|
|
298
304
|
}
|
|
299
305
|
finalPrivKey = this.authInstance.coreKitKey;
|
|
300
306
|
}
|
|
@@ -310,8 +316,8 @@ class AuthConnector extends baseConnector.BaseConnector {
|
|
|
310
316
|
} = chainConfig;
|
|
311
317
|
// if not logged in then login
|
|
312
318
|
const keyAvailable = chainNamespace === baseControllers.CHAIN_NAMESPACES.EIP155 || chainNamespace === baseControllers.CHAIN_NAMESPACES.SOLANA ? (_this$authInstance = this.authInstance) === null || _this$authInstance === void 0 ? void 0 : _this$authInstance.sessionId : this._getFinalPrivKey();
|
|
313
|
-
if (params.
|
|
314
|
-
id_token: params.
|
|
319
|
+
if (params.idToken) params.extraLoginOptions = _objectSpread(_objectSpread({}, params.extraLoginOptions), {}, {
|
|
320
|
+
id_token: params.idToken
|
|
315
321
|
});
|
|
316
322
|
if (!keyAvailable || (_params$extraLoginOpt = params.extraLoginOptions) !== null && _params$extraLoginOpt !== void 0 && _params$extraLoginOpt.id_token) {
|
|
317
323
|
var _params$extraLoginOpt2;
|
|
@@ -376,13 +382,13 @@ class AuthConnector extends baseConnector.BaseConnector {
|
|
|
376
382
|
});
|
|
377
383
|
if (!(providerConfig !== null && providerConfig !== void 0 && providerConfig.authConnection)) throw index$1.WalletLoginError.connectionError("Invalid auth connection.");
|
|
378
384
|
const jwtParams = _objectSpread(_objectSpread(_objectSpread({}, providerConfig.jwtParameters || {}), params.extraLoginOptions || {}), {}, {
|
|
379
|
-
login_hint: params.
|
|
385
|
+
login_hint: params.loginHint || ((_params$extraLoginOpt3 = params.extraLoginOptions) === null || _params$extraLoginOpt3 === void 0 ? void 0 : _params$extraLoginOpt3.login_hint)
|
|
380
386
|
});
|
|
381
387
|
const nonce = auth.randomId();
|
|
382
388
|
// post a message to the auth provider to indicate that login has been initiated.
|
|
383
389
|
const loginParams = baseControllers.cloneDeep(params);
|
|
384
390
|
loginParams.extraLoginOptions = _objectSpread(_objectSpread({}, loginParams.extraLoginOptions || {}), {}, {
|
|
385
|
-
login_hint: params.
|
|
391
|
+
login_hint: params.loginHint || ((_params$extraLoginOpt4 = params.extraLoginOptions) === null || _params$extraLoginOpt4 === void 0 ? void 0 : _params$extraLoginOpt4.login_hint)
|
|
386
392
|
});
|
|
387
393
|
delete loginParams.chainId;
|
|
388
394
|
const popupParams = {
|
|
@@ -390,7 +396,7 @@ class AuthConnector extends baseConnector.BaseConnector {
|
|
|
390
396
|
authConnectionId: providerConfig.authConnectionId,
|
|
391
397
|
clientId: providerConfig.clientId || jwtParams.client_id,
|
|
392
398
|
groupedAuthConnectionId: providerConfig.groupedAuthConnectionId,
|
|
393
|
-
redirect_uri: `${this.authInstance.
|
|
399
|
+
redirect_uri: `${this.authInstance.options.sdkUrl}/auth`,
|
|
394
400
|
jwtParams,
|
|
395
401
|
customState: {
|
|
396
402
|
nonce,
|
|
@@ -399,7 +405,8 @@ class AuthConnector extends baseConnector.BaseConnector {
|
|
|
399
405
|
dapp_redirect_url: this.authInstance.options.redirectUrl,
|
|
400
406
|
uxMode: this.authInstance.options.uxMode,
|
|
401
407
|
whiteLabel: JSON.stringify(this.authInstance.options.whiteLabel),
|
|
402
|
-
loginParams: JSON.stringify(loginParams)
|
|
408
|
+
loginParams: JSON.stringify(loginParams),
|
|
409
|
+
version: auth.version.split(".")[0]
|
|
403
410
|
},
|
|
404
411
|
web3AuthClientId: this.coreOptions.clientId,
|
|
405
412
|
web3AuthNetwork: this.coreOptions.web3AuthNetwork
|
|
@@ -444,7 +451,12 @@ class AuthConnector extends baseConnector.BaseConnector {
|
|
|
444
451
|
reject(index$1.WalletLoginError.popupClosed());
|
|
445
452
|
}
|
|
446
453
|
});
|
|
447
|
-
this.authInstance.postLoginInitiatedMessage(loginParams, nonce).then(resolve).catch(
|
|
454
|
+
this.authInstance.postLoginInitiatedMessage(loginParams, nonce).then(resolve).catch(error => {
|
|
455
|
+
if (error instanceof index$1.Web3AuthError) {
|
|
456
|
+
throw error;
|
|
457
|
+
}
|
|
458
|
+
reject(index$1.WalletLoginError.connectionError(error instanceof Error ? error.message : error || "Failed to login with social"));
|
|
459
|
+
});
|
|
448
460
|
});
|
|
449
461
|
}
|
|
450
462
|
connectWithJwtLogin(params) {
|
|
@@ -467,9 +479,9 @@ class AuthConnector extends baseConnector.BaseConnector {
|
|
|
467
479
|
const loginParams = baseControllers.cloneDeep(params);
|
|
468
480
|
const finalExtraLoginOptions = _objectSpread(_objectSpread({}, (loginConfig === null || loginConfig === void 0 ? void 0 : loginConfig.jwtParameters) || {}), params.extraLoginOptions || {});
|
|
469
481
|
let finalUserId;
|
|
470
|
-
if (params.
|
|
482
|
+
if (params.loginHint || (_params$extraLoginOpt5 = params.extraLoginOptions) !== null && _params$extraLoginOpt5 !== void 0 && _params$extraLoginOpt5.login_hint) {
|
|
471
483
|
var _params$extraLoginOpt6;
|
|
472
|
-
finalUserId = params.
|
|
484
|
+
finalUserId = params.loginHint || ((_params$extraLoginOpt6 = params.extraLoginOptions) === null || _params$extraLoginOpt6 === void 0 ? void 0 : _params$extraLoginOpt6.login_hint);
|
|
473
485
|
} else if ((_params$extraLoginOpt7 = params.extraLoginOptions) !== null && _params$extraLoginOpt7 !== void 0 && _params$extraLoginOpt7.id_token) {
|
|
474
486
|
if (typeof finalExtraLoginOptions.isUserIdCaseSensitive === "undefined") {
|
|
475
487
|
throw index$1.WalletInitializationError.invalidParams(`isUserIdCaseSensitive is required for this connection: ${finalExtraLoginOptions.authConnection}`);
|
|
@@ -517,14 +529,12 @@ const authConnector = params => {
|
|
|
517
529
|
const connectorSettings = {};
|
|
518
530
|
const {
|
|
519
531
|
whitelist,
|
|
520
|
-
whitelabel,
|
|
521
532
|
sessionTime
|
|
522
533
|
} = projectConfig;
|
|
523
534
|
if (whitelist) connectorSettings.originData = whitelist.signed_urls;
|
|
524
535
|
if (sessionTime) connectorSettings.sessionTime = sessionTime;
|
|
525
536
|
if ((_coreOptions$uiConfig = coreOptions.uiConfig) !== null && _coreOptions$uiConfig !== void 0 && _coreOptions$uiConfig.uxMode) connectorSettings.uxMode = coreOptions.uiConfig.uxMode;
|
|
526
|
-
const uiConfig =
|
|
527
|
-
if (!uiConfig.mode) uiConfig.mode = "light";
|
|
537
|
+
const uiConfig = coreOptions.uiConfig || {};
|
|
528
538
|
connectorSettings.whiteLabel = uiConfig;
|
|
529
539
|
const finalConnectorSettings = deepmerge.all([{
|
|
530
540
|
uxMode: auth.UX_MODE.POPUP,
|
|
@@ -533,55 +543,22 @@ const authConnector = params => {
|
|
|
533
543
|
// default settings
|
|
534
544
|
connectorSettings, (params === null || params === void 0 ? void 0 : params.connectorSettings) || {}]);
|
|
535
545
|
// WS settings
|
|
536
|
-
const {
|
|
537
|
-
enableKeyExport,
|
|
538
|
-
walletUi
|
|
539
|
-
} = projectConfig;
|
|
540
|
-
const isKeyExportEnabled = typeof enableKeyExport === "boolean" ? enableKeyExport : true;
|
|
541
|
-
const {
|
|
542
|
-
enablePortfolioWidget = false,
|
|
543
|
-
enableTokenDisplay = true,
|
|
544
|
-
enableNftDisplay = true,
|
|
545
|
-
enableWalletConnect = true,
|
|
546
|
-
enableBuyButton = true,
|
|
547
|
-
enableSendButton = true,
|
|
548
|
-
enableSwapButton = true,
|
|
549
|
-
enableReceiveButton = true,
|
|
550
|
-
enableShowAllTokensButton = true,
|
|
551
|
-
enableConfirmationModal = false,
|
|
552
|
-
portfolioWidgetPosition = baseControllers.BUTTON_POSITION.BOTTOM_LEFT,
|
|
553
|
-
defaultPortfolio = "token"
|
|
554
|
-
} = walletUi || {};
|
|
555
|
-
const projectConfigWhiteLabel = {
|
|
556
|
-
showWidgetButton: enablePortfolioWidget,
|
|
557
|
-
hideNftDisplay: !enableNftDisplay,
|
|
558
|
-
hideTokenDisplay: !enableTokenDisplay,
|
|
559
|
-
hideTransfers: !enableSendButton,
|
|
560
|
-
hideTopup: !enableBuyButton,
|
|
561
|
-
hideReceive: !enableReceiveButton,
|
|
562
|
-
hideSwap: !enableSwapButton,
|
|
563
|
-
hideShowAllTokens: !enableShowAllTokensButton,
|
|
564
|
-
hideWalletConnect: !enableWalletConnect,
|
|
565
|
-
buttonPosition: portfolioWidgetPosition,
|
|
566
|
-
defaultPortfolio
|
|
567
|
-
};
|
|
568
|
-
const whiteLabel = deepmerge.all([projectConfigWhiteLabel, uiConfig, ((_coreOptions$walletSe = coreOptions.walletServicesConfig) === null || _coreOptions$walletSe === void 0 ? void 0 : _coreOptions$walletSe.whiteLabel) || {}]);
|
|
569
|
-
const confirmationStrategy = (_coreOptions$walletSe2 = (_coreOptions$walletSe3 = coreOptions.walletServicesConfig) === null || _coreOptions$walletSe3 === void 0 ? void 0 : _coreOptions$walletSe3.confirmationStrategy) !== null && _coreOptions$walletSe2 !== void 0 ? _coreOptions$walletSe2 : enableConfirmationModal ? baseControllers.CONFIRMATION_STRATEGY.MODAL : baseControllers.CONFIRMATION_STRATEGY.AUTO_APPROVE;
|
|
546
|
+
const whiteLabel = deepmerge.all([uiConfig, ((_coreOptions$walletSe = coreOptions.walletServicesConfig) === null || _coreOptions$walletSe === void 0 ? void 0 : _coreOptions$walletSe.whiteLabel) || {}]);
|
|
570
547
|
const finalWsSettings = _objectSpread(_objectSpread({}, coreOptions.walletServicesConfig), {}, {
|
|
571
|
-
confirmationStrategy,
|
|
572
548
|
whiteLabel,
|
|
573
549
|
accountAbstractionConfig: coreOptions.accountAbstractionConfig,
|
|
574
|
-
enableLogging: coreOptions.enableLogging
|
|
575
|
-
enableKeyExport: enableKeyExport
|
|
550
|
+
enableLogging: coreOptions.enableLogging
|
|
576
551
|
});
|
|
577
552
|
// Core options
|
|
553
|
+
const isKeyExportEnabled = (_coreOptions$walletSe2 = (_coreOptions$walletSe3 = coreOptions.walletServicesConfig) === null || _coreOptions$walletSe3 === void 0 ? void 0 : _coreOptions$walletSe3.enableKeyExport) !== null && _coreOptions$walletSe2 !== void 0 ? _coreOptions$walletSe2 : true;
|
|
578
554
|
if (coreOptions.privateKeyProvider) coreOptions.privateKeyProvider.setKeyExportFlag(isKeyExportEnabled);
|
|
579
555
|
return new AuthConnector({
|
|
580
556
|
connectorSettings: finalConnectorSettings,
|
|
581
557
|
walletServicesSettings: finalWsSettings,
|
|
582
|
-
loginSettings: params === null || params === void 0 ? void 0 : params.loginSettings,
|
|
558
|
+
loginSettings: _objectSpread(_objectSpread({}, (params === null || params === void 0 ? void 0 : params.loginSettings) || {}), {}, {
|
|
559
|
+
mfaLevel: coreOptions.mfaLevel
|
|
560
|
+
}),
|
|
583
561
|
coreOptions,
|
|
584
|
-
// TODO: check, test this and may need to send modal config here later on.!!
|
|
585
562
|
authConnectionConfig: projectConfig.embeddedWalletAuth
|
|
586
563
|
});
|
|
587
564
|
};
|