thirdweb 5.29.2 → 5.29.3-nightly-476b6cc271b0891fa01fb09ca509c564b850ccfa-20240614185219
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/cjs/exports/react-native/wallets/in-app.js +17 -0
- package/dist/cjs/exports/react-native/wallets/in-app.js.map +1 -0
- package/dist/cjs/exports/react-native/wallets.js +36 -0
- package/dist/cjs/exports/react-native/wallets.js.map +1 -0
- package/dist/cjs/exports/wallets/embedded.js +4 -4
- package/dist/cjs/exports/wallets/embedded.js.map +1 -1
- package/dist/cjs/exports/wallets/in-app.js +4 -3
- package/dist/cjs/exports/wallets/in-app.js.map +1 -1
- package/dist/cjs/exports/wallets/smart.js +2 -2
- package/dist/cjs/exports/wallets/smart.js.map +1 -1
- package/dist/cjs/exports/wallets.js +8 -5
- package/dist/cjs/exports/wallets.js.map +1 -1
- package/dist/cjs/react/web/ui/ConnectWallet/Details.js +1 -1
- package/dist/cjs/react/web/ui/ConnectWallet/Details.js.map +1 -1
- package/dist/cjs/react/web/wallets/in-app/InAppWalletOTPLoginUI.js +1 -1
- package/dist/cjs/react/web/wallets/in-app/InAppWalletOTPLoginUI.js.map +1 -1
- package/dist/cjs/version.js +1 -1
- package/dist/cjs/version.js.map +1 -1
- package/dist/cjs/wallets/coinbase/coinbase-wallet.js +87 -0
- package/dist/cjs/wallets/coinbase/coinbase-wallet.js.map +1 -0
- package/dist/cjs/wallets/coinbase/coinbaseMobileSDK.js +17 -2
- package/dist/cjs/wallets/coinbase/coinbaseMobileSDK.js.map +1 -1
- package/dist/cjs/wallets/coinbase/coinbaseSDKWallet.js +12 -20
- package/dist/cjs/wallets/coinbase/coinbaseSDKWallet.js.map +1 -1
- package/dist/cjs/wallets/create-wallet.js +12 -300
- package/dist/cjs/wallets/create-wallet.js.map +1 -1
- package/dist/cjs/wallets/in-app/core/authentication/type.js +6 -1
- package/dist/cjs/wallets/in-app/core/authentication/type.js.map +1 -1
- package/dist/cjs/wallets/in-app/core/wallet/in-app-core.js +100 -0
- package/dist/cjs/wallets/in-app/core/wallet/in-app-core.js.map +1 -0
- package/dist/cjs/wallets/in-app/core/wallet/index.js +15 -7
- package/dist/cjs/wallets/in-app/core/wallet/index.js.map +1 -1
- package/dist/cjs/wallets/in-app/{core/authentication → native/auth}/index.js +15 -42
- package/dist/cjs/wallets/in-app/native/auth/index.js.map +1 -0
- package/dist/cjs/wallets/in-app/native/{auth.js → auth/native-auth.js} +9 -9
- package/dist/cjs/wallets/in-app/native/auth/native-auth.js.map +1 -0
- package/dist/cjs/wallets/in-app/native/in-app.js +69 -0
- package/dist/cjs/wallets/in-app/native/in-app.js.map +1 -0
- package/dist/cjs/wallets/in-app/native/native-connector.js +9 -10
- package/dist/cjs/wallets/in-app/native/native-connector.js.map +1 -1
- package/dist/cjs/wallets/in-app/web/in-app.js +69 -0
- package/dist/cjs/wallets/in-app/web/in-app.js.map +1 -0
- package/dist/cjs/wallets/in-app/web/lib/auth/iframe-auth.js +219 -0
- package/dist/cjs/wallets/in-app/web/lib/auth/iframe-auth.js.map +1 -0
- package/dist/cjs/wallets/in-app/web/lib/auth/index.js +121 -208
- package/dist/cjs/wallets/in-app/web/lib/auth/index.js.map +1 -1
- package/dist/cjs/wallets/in-app/web/lib/web-connector.js +3 -4
- package/dist/cjs/wallets/in-app/web/lib/web-connector.js.map +1 -1
- package/dist/cjs/wallets/manager/index.js +2 -2
- package/dist/cjs/wallets/manager/index.js.map +1 -1
- package/dist/cjs/wallets/native/create-wallet.js +174 -0
- package/dist/cjs/wallets/native/create-wallet.js.map +1 -0
- package/dist/cjs/wallets/smart/smart-wallet.js +103 -0
- package/dist/cjs/wallets/smart/smart-wallet.js.map +1 -0
- package/dist/esm/exports/react-native/wallets/in-app.js +9 -0
- package/dist/esm/exports/react-native/wallets/in-app.js.map +1 -0
- package/dist/esm/exports/react-native/wallets.js +23 -0
- package/dist/esm/exports/react-native/wallets.js.map +1 -0
- package/dist/esm/exports/wallets/embedded.js +3 -2
- package/dist/esm/exports/wallets/embedded.js.map +1 -1
- package/dist/esm/exports/wallets/in-app.js +4 -2
- package/dist/esm/exports/wallets/in-app.js.map +1 -1
- package/dist/esm/exports/wallets/smart.js +1 -1
- package/dist/esm/exports/wallets/smart.js.map +1 -1
- package/dist/esm/exports/wallets.js +5 -2
- package/dist/esm/exports/wallets.js.map +1 -1
- package/dist/esm/react/web/ui/ConnectWallet/Details.js +1 -1
- package/dist/esm/react/web/ui/ConnectWallet/Details.js.map +1 -1
- package/dist/esm/react/web/wallets/in-app/InAppWalletOTPLoginUI.js +1 -1
- package/dist/esm/react/web/wallets/in-app/InAppWalletOTPLoginUI.js.map +1 -1
- package/dist/esm/version.js +1 -1
- package/dist/esm/version.js.map +1 -1
- package/dist/esm/wallets/coinbase/coinbase-wallet.js +83 -0
- package/dist/esm/wallets/coinbase/coinbase-wallet.js.map +1 -0
- package/dist/esm/wallets/coinbase/coinbaseMobileSDK.js +16 -1
- package/dist/esm/wallets/coinbase/coinbaseMobileSDK.js.map +1 -1
- package/dist/esm/wallets/coinbase/coinbaseSDKWallet.js +10 -19
- package/dist/esm/wallets/coinbase/coinbaseSDKWallet.js.map +1 -1
- package/dist/esm/wallets/create-wallet.js +9 -295
- package/dist/esm/wallets/create-wallet.js.map +1 -1
- package/dist/esm/wallets/in-app/core/authentication/type.js +5 -0
- package/dist/esm/wallets/in-app/core/authentication/type.js.map +1 -1
- package/dist/esm/wallets/in-app/core/wallet/in-app-core.js +95 -0
- package/dist/esm/wallets/in-app/core/wallet/in-app-core.js.map +1 -0
- package/dist/esm/wallets/in-app/core/wallet/index.js +15 -7
- package/dist/esm/wallets/in-app/core/wallet/index.js.map +1 -1
- package/dist/esm/wallets/in-app/{core/authentication → native/auth}/index.js +14 -40
- package/dist/esm/wallets/in-app/native/auth/index.js.map +1 -0
- package/dist/esm/wallets/in-app/native/{auth.js → auth/native-auth.js} +9 -9
- package/dist/esm/wallets/in-app/native/auth/native-auth.js.map +1 -0
- package/dist/esm/wallets/in-app/native/in-app.js +65 -0
- package/dist/esm/wallets/in-app/native/in-app.js.map +1 -0
- package/dist/esm/wallets/in-app/native/native-connector.js +2 -3
- package/dist/esm/wallets/in-app/native/native-connector.js.map +1 -1
- package/dist/esm/wallets/in-app/web/in-app.js +65 -0
- package/dist/esm/wallets/in-app/web/in-app.js.map +1 -0
- package/dist/esm/wallets/in-app/web/lib/auth/iframe-auth.js +215 -0
- package/dist/esm/wallets/in-app/web/lib/auth/iframe-auth.js.map +1 -0
- package/dist/esm/wallets/in-app/web/lib/auth/index.js +115 -206
- package/dist/esm/wallets/in-app/web/lib/auth/index.js.map +1 -1
- package/dist/esm/wallets/in-app/web/lib/web-connector.js +2 -3
- package/dist/esm/wallets/in-app/web/lib/web-connector.js.map +1 -1
- package/dist/esm/wallets/manager/index.js +1 -1
- package/dist/esm/wallets/manager/index.js.map +1 -1
- package/dist/esm/wallets/native/create-wallet.js +169 -0
- package/dist/esm/wallets/native/create-wallet.js.map +1 -0
- package/dist/esm/wallets/smart/smart-wallet.js +99 -0
- package/dist/esm/wallets/smart/smart-wallet.js.map +1 -0
- package/dist/types/exports/react-native/wallets/in-app.d.ts +5 -0
- package/dist/types/exports/react-native/wallets/in-app.d.ts.map +1 -0
- package/dist/types/exports/react-native/wallets.d.ts +47 -0
- package/dist/types/exports/react-native/wallets.d.ts.map +1 -0
- package/dist/types/exports/wallets/embedded.d.ts +3 -2
- package/dist/types/exports/wallets/embedded.d.ts.map +1 -1
- package/dist/types/exports/wallets/in-app.d.ts +3 -2
- package/dist/types/exports/wallets/in-app.d.ts.map +1 -1
- package/dist/types/exports/wallets/smart.d.ts +1 -1
- package/dist/types/exports/wallets/smart.d.ts.map +1 -1
- package/dist/types/exports/wallets.d.ts +4 -2
- package/dist/types/exports/wallets.d.ts.map +1 -1
- package/dist/types/version.d.ts +1 -1
- package/dist/types/version.d.ts.map +1 -1
- package/dist/types/wallets/coinbase/coinbase-wallet.d.ts +15 -0
- package/dist/types/wallets/coinbase/coinbase-wallet.d.ts.map +1 -0
- package/dist/types/wallets/coinbase/coinbaseMobileSDK.d.ts +7 -7
- package/dist/types/wallets/coinbase/coinbaseMobileSDK.d.ts.map +1 -1
- package/dist/types/wallets/coinbase/coinbaseSDKWallet.d.ts +6 -2
- package/dist/types/wallets/coinbase/coinbaseSDKWallet.d.ts.map +1 -1
- package/dist/types/wallets/create-wallet.d.ts +0 -74
- package/dist/types/wallets/create-wallet.d.ts.map +1 -1
- package/dist/types/wallets/in-app/core/authentication/type.d.ts +4 -0
- package/dist/types/wallets/in-app/core/authentication/type.d.ts.map +1 -1
- package/dist/types/wallets/in-app/core/wallet/in-app-core.d.ts +16 -0
- package/dist/types/wallets/in-app/core/wallet/in-app-core.d.ts.map +1 -0
- package/dist/types/wallets/in-app/core/wallet/index.d.ts +3 -2
- package/dist/types/wallets/in-app/core/wallet/index.d.ts.map +1 -1
- package/dist/types/wallets/in-app/{core/authentication → native/auth}/index.d.ts +3 -12
- package/dist/types/wallets/in-app/native/auth/index.d.ts.map +1 -0
- package/dist/types/wallets/in-app/native/{auth.d.ts → auth/native-auth.d.ts} +3 -3
- package/dist/types/wallets/in-app/native/auth/native-auth.d.ts.map +1 -0
- package/dist/types/wallets/in-app/native/in-app.d.ts +56 -0
- package/dist/types/wallets/in-app/native/in-app.d.ts.map +1 -0
- package/dist/types/wallets/in-app/native/native-connector.d.ts.map +1 -1
- package/dist/types/wallets/in-app/web/in-app.d.ts +56 -0
- package/dist/types/wallets/in-app/web/in-app.d.ts.map +1 -0
- package/dist/types/wallets/in-app/web/lib/auth/iframe-auth.d.ts +141 -0
- package/dist/types/wallets/in-app/web/lib/auth/iframe-auth.d.ts.map +1 -0
- package/dist/types/wallets/in-app/web/lib/auth/index.d.ts +78 -137
- package/dist/types/wallets/in-app/web/lib/auth/index.d.ts.map +1 -1
- package/dist/types/wallets/in-app/web/lib/web-connector.d.ts +1 -1
- package/dist/types/wallets/in-app/web/lib/web-connector.d.ts.map +1 -1
- package/dist/types/wallets/manager/index.d.ts.map +1 -1
- package/dist/types/wallets/native/create-wallet.d.ts +36 -0
- package/dist/types/wallets/native/create-wallet.d.ts.map +1 -0
- package/dist/types/wallets/smart/smart-wallet.d.ts +24 -0
- package/dist/types/wallets/smart/smart-wallet.d.ts.map +1 -0
- package/package.json +3 -1
- package/src/exports/react-native/wallets/in-app.ts +18 -0
- package/src/exports/react-native/wallets.ts +102 -0
- package/src/exports/wallets/embedded.ts +4 -3
- package/src/exports/wallets/in-app.ts +6 -3
- package/src/exports/wallets/smart.ts +1 -1
- package/src/exports/wallets.ts +7 -3
- package/src/react/web/ui/ConnectWallet/Details.tsx +1 -1
- package/src/react/web/wallets/in-app/InAppWalletOTPLoginUI.tsx +1 -1
- package/src/version.ts +1 -1
- package/src/wallets/coinbase/coinbase-wallet.ts +108 -0
- package/src/wallets/coinbase/coinbaseMobileSDK.ts +23 -1
- package/src/wallets/coinbase/coinbaseSDKWallet.ts +10 -21
- package/src/wallets/create-wallet.ts +9 -359
- package/src/wallets/in-app/core/authentication/type.ts +13 -0
- package/src/wallets/in-app/core/wallet/in-app-core.ts +134 -0
- package/src/wallets/in-app/core/wallet/index.ts +17 -6
- package/src/wallets/in-app/{core/authentication → native/auth}/index.ts +15 -57
- package/src/wallets/in-app/native/{auth.ts → auth/native-auth.ts} +10 -10
- package/src/wallets/in-app/native/in-app.ts +70 -0
- package/src/wallets/in-app/native/native-connector.ts +2 -2
- package/src/wallets/in-app/web/in-app.ts +70 -0
- package/src/wallets/in-app/web/lib/auth/iframe-auth.ts +266 -0
- package/src/wallets/in-app/web/lib/auth/index.ts +124 -249
- package/src/wallets/in-app/web/lib/web-connector.ts +2 -2
- package/src/wallets/manager/index.ts +1 -1
- package/src/wallets/native/create-wallet.ts +224 -0
- package/src/wallets/smart/smart-wallet-integration.test.ts +1 -1
- package/src/wallets/smart/smart-wallet-zksync.test.ts +1 -1
- package/src/wallets/smart/smart-wallet.ts +123 -0
- package/dist/cjs/wallets/in-app/core/authentication/index.js.map +0 -1
- package/dist/cjs/wallets/in-app/native/auth.js.map +0 -1
- package/dist/esm/wallets/in-app/core/authentication/index.js.map +0 -1
- package/dist/esm/wallets/in-app/native/auth.js.map +0 -1
- package/dist/types/wallets/in-app/core/authentication/index.d.ts.map +0 -1
- package/dist/types/wallets/in-app/native/auth.d.ts.map +0 -1
@@ -1,215 +1,124 @@
|
|
1
|
-
import {
|
2
|
-
import {
|
1
|
+
import { UserWalletStatus, } from "../../../core/authentication/type.js";
|
2
|
+
import { getOrCreateInAppWalletConnector } from "../../../core/wallet/in-app-core.js";
|
3
|
+
// ---- KEEP IN SYNC WITH /wallets/in-app/native/auth/index.ts ---- //
|
4
|
+
// duplication needed for separate exports between web and native
|
3
5
|
/**
|
4
|
-
*
|
6
|
+
* @internal
|
5
7
|
*/
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
*/
|
12
|
-
constructor({ client, querier, onAuthSuccess, baseUrl, }) {
|
13
|
-
Object.defineProperty(this, "client", {
|
14
|
-
enumerable: true,
|
15
|
-
configurable: true,
|
16
|
-
writable: true,
|
17
|
-
value: void 0
|
18
|
-
});
|
19
|
-
Object.defineProperty(this, "AuthQuerier", {
|
20
|
-
enumerable: true,
|
21
|
-
configurable: true,
|
22
|
-
writable: true,
|
23
|
-
value: void 0
|
24
|
-
});
|
25
|
-
Object.defineProperty(this, "localStorage", {
|
26
|
-
enumerable: true,
|
27
|
-
configurable: true,
|
28
|
-
writable: true,
|
29
|
-
value: void 0
|
30
|
-
});
|
31
|
-
Object.defineProperty(this, "onAuthSuccess", {
|
32
|
-
enumerable: true,
|
33
|
-
configurable: true,
|
34
|
-
writable: true,
|
35
|
-
value: void 0
|
36
|
-
});
|
37
|
-
Object.defineProperty(this, "BaseLogin", {
|
38
|
-
enumerable: true,
|
39
|
-
configurable: true,
|
40
|
-
writable: true,
|
41
|
-
value: void 0
|
42
|
-
});
|
43
|
-
this.client = client;
|
44
|
-
this.AuthQuerier = querier;
|
45
|
-
this.localStorage = new LocalStorage({ clientId: client.clientId });
|
46
|
-
this.onAuthSuccess = onAuthSuccess;
|
47
|
-
this.BaseLogin = new BaseLogin({
|
48
|
-
postLogin: async (result) => {
|
49
|
-
return this.postLogin(result);
|
50
|
-
},
|
51
|
-
preLogin: async () => {
|
52
|
-
await this.preLogin();
|
53
|
-
},
|
54
|
-
querier: querier,
|
55
|
-
client,
|
56
|
-
baseUrl,
|
8
|
+
async function getInAppWalletConnector(client) {
|
9
|
+
return getOrCreateInAppWalletConnector(client, async (client) => {
|
10
|
+
const { InAppWebConnector } = await import("../web-connector.js");
|
11
|
+
return new InAppWebConnector({
|
12
|
+
client: client,
|
57
13
|
});
|
58
|
-
}
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
14
|
+
});
|
15
|
+
}
|
16
|
+
/**
|
17
|
+
* Retrieves the authenticated user for the active in-app wallet.
|
18
|
+
* @param options - The arguments for retrieving the authenticated user.
|
19
|
+
* @returns The authenticated user if logged in and wallet initialized, otherwise undefined.
|
20
|
+
* @example
|
21
|
+
* ```ts
|
22
|
+
* import { getAuthenticatedUser } from "thirdweb/wallets/in-app";
|
23
|
+
*
|
24
|
+
* const user = await getAuthenticatedUser({ client });
|
25
|
+
* if (user) {
|
26
|
+
* console.log(user.walletAddress);
|
27
|
+
* }
|
28
|
+
* ```
|
29
|
+
* @wallet
|
30
|
+
*/
|
31
|
+
export async function getAuthenticatedUser(options) {
|
32
|
+
const { client } = options;
|
33
|
+
const connector = await getInAppWalletConnector(client);
|
34
|
+
const user = await connector.getUser();
|
35
|
+
switch (user.status) {
|
36
|
+
case UserWalletStatus.LOGGED_IN_WALLET_INITIALIZED: {
|
37
|
+
return user;
|
65
38
|
}
|
66
|
-
const initializedUser = await this.onAuthSuccess({
|
67
|
-
storedToken,
|
68
|
-
walletDetails,
|
69
|
-
});
|
70
|
-
return initializedUser;
|
71
|
-
}
|
72
|
-
async loginWithAuthToken(authToken, recoveryCode) {
|
73
|
-
await this.preLogin();
|
74
|
-
const result = await this.AuthQuerier.call({
|
75
|
-
procedureName: "loginWithStoredTokenDetails",
|
76
|
-
params: {
|
77
|
-
storedToken: authToken.storedToken,
|
78
|
-
recoveryCode,
|
79
|
-
},
|
80
|
-
});
|
81
|
-
return this.postLogin(result);
|
82
|
-
}
|
83
|
-
/**
|
84
|
-
* Used to log the user into their thirdweb wallet on your platform via a myriad of auth providers
|
85
|
-
* @example
|
86
|
-
* ```typescript
|
87
|
-
* const thirdwebInAppWallet = new InAppWalletSdk({clientId: "YOUR_CLIENT_ID", chain: "Polygon"})
|
88
|
-
* try {
|
89
|
-
* const user = await thirdwebInAppWallet.auth.loginWithModal();
|
90
|
-
* // user is now logged in
|
91
|
-
* } catch (e) {
|
92
|
-
* // User closed modal or something else went wrong during the authentication process
|
93
|
-
* console.error(e)
|
94
|
-
* }
|
95
|
-
* ```
|
96
|
-
* @returns `{{user: InitializedUser}}` An InitializedUser object.
|
97
|
-
*/
|
98
|
-
async loginWithModal() {
|
99
|
-
return this.BaseLogin.loginWithModal();
|
100
|
-
}
|
101
|
-
/**
|
102
|
-
* Used to log the user into their thirdweb wallet using email OTP
|
103
|
-
* @example
|
104
|
-
* ```typescript
|
105
|
-
* // Basic Flow
|
106
|
-
* const thirdwebInAppWallet = new InAppWalletSdk({clientId: "", chain: "Polygon"});
|
107
|
-
* try {
|
108
|
-
* // prompts user to enter the code they received
|
109
|
-
* const user = await thirdwebInAppWallet.auth.loginWithThirdwebEmailOtp({ email : "you@example.com" });
|
110
|
-
* // user is now logged in
|
111
|
-
* } catch (e) {
|
112
|
-
* // User closed the OTP modal or something else went wrong during the authentication process
|
113
|
-
* console.error(e)
|
114
|
-
* }
|
115
|
-
* ```
|
116
|
-
* @param args - args.email: We will send the email an OTP that needs to be entered in order for them to be logged in.
|
117
|
-
* @returns `{{user: InitializedUser}}` An InitializedUser object. See {@link InAppWalletSdk.getUser} for more
|
118
|
-
*/
|
119
|
-
async loginWithEmailOtp(args) {
|
120
|
-
return this.BaseLogin.loginWithEmailOtp(args);
|
121
|
-
}
|
122
|
-
/**
|
123
|
-
* @internal
|
124
|
-
*/
|
125
|
-
async loginWithCustomJwt(args) {
|
126
|
-
return this.BaseLogin.loginWithCustomJwt(args);
|
127
|
-
}
|
128
|
-
/**
|
129
|
-
* @internal
|
130
|
-
*/
|
131
|
-
async loginWithCustomAuthEndpoint(args) {
|
132
|
-
return this.BaseLogin.loginWithCustomAuthEndpoint(args);
|
133
|
-
}
|
134
|
-
/**
|
135
|
-
* @internal
|
136
|
-
*/
|
137
|
-
async loginWithOauth(args) {
|
138
|
-
return this.BaseLogin.loginWithOauth(args);
|
139
|
-
}
|
140
|
-
/**
|
141
|
-
* A headless way to send the users at the passed email an OTP code.
|
142
|
-
* You need to then call {@link Auth.verifyEmailLoginOtp} in order to complete the login process
|
143
|
-
* @example
|
144
|
-
* @param param0.email
|
145
|
-
* ```typescript
|
146
|
-
* const thirdwebInAppWallet = new InAppWalletSdk({clientId: "", chain: "Polygon"});
|
147
|
-
* // sends user an OTP code
|
148
|
-
* try {
|
149
|
-
* await thirdwebInAppWallet.auth.sendEmailLoginOtp({ email : "you@example.com" });
|
150
|
-
* } catch(e) {
|
151
|
-
* // Error Sending user's email an OTP code
|
152
|
-
* console.error(e);
|
153
|
-
* }
|
154
|
-
*
|
155
|
-
* // Then when your user is ready to verify their OTP
|
156
|
-
* try {
|
157
|
-
* const user = await thirdwebInAppWallet.auth.verifyEmailLoginOtp({ email: "you@example.com", otp: "6-DIGIT_CODE_HERE" });
|
158
|
-
* } catch(e) {
|
159
|
-
* // Error verifying the OTP code
|
160
|
-
* console.error(e)
|
161
|
-
* }
|
162
|
-
* ```
|
163
|
-
* @param param0 - param0.email We will send the email an OTP that needs to be entered in order for them to be logged in.
|
164
|
-
* @returns `{{ isNewUser: boolean }}` IsNewUser indicates if the user is a new user to your platform
|
165
|
-
* @internal
|
166
|
-
*/
|
167
|
-
async sendEmailLoginOtp({ email, }) {
|
168
|
-
return this.BaseLogin.sendEmailLoginOtp({
|
169
|
-
email,
|
170
|
-
});
|
171
|
-
}
|
172
|
-
/**
|
173
|
-
* @internal
|
174
|
-
*/
|
175
|
-
async sendSmsLoginOtp({ phoneNumber, }) {
|
176
|
-
return this.BaseLogin.sendSmsLoginOtp({
|
177
|
-
phoneNumber,
|
178
|
-
});
|
179
39
|
}
|
180
|
-
|
181
|
-
|
182
|
-
|
183
|
-
|
184
|
-
|
185
|
-
|
186
|
-
|
187
|
-
|
188
|
-
|
189
|
-
|
190
|
-
|
191
|
-
|
192
|
-
|
193
|
-
|
194
|
-
|
195
|
-
|
196
|
-
|
40
|
+
return undefined;
|
41
|
+
}
|
42
|
+
/**
|
43
|
+
* Retrieves the authenticated user email for the active in-app wallet.
|
44
|
+
* @param options - The arguments for retrieving the authenticated user.
|
45
|
+
* @returns The authenticated user email if logged in and wallet initialized, otherwise undefined.
|
46
|
+
* @example
|
47
|
+
* ```ts
|
48
|
+
* import { getUserEmail } from "thirdweb/wallets/in-app";
|
49
|
+
*
|
50
|
+
* const email = await getUserEmail({ client });
|
51
|
+
* console.log(email);
|
52
|
+
* ```
|
53
|
+
* @wallet
|
54
|
+
*/
|
55
|
+
export async function getUserEmail(options) {
|
56
|
+
const user = await getAuthenticatedUser(options);
|
57
|
+
if (user && "email" in user.authDetails) {
|
58
|
+
return user.authDetails.email;
|
197
59
|
}
|
198
|
-
|
199
|
-
|
200
|
-
|
201
|
-
|
202
|
-
|
203
|
-
|
204
|
-
|
205
|
-
|
206
|
-
|
207
|
-
|
208
|
-
|
209
|
-
|
210
|
-
|
211
|
-
|
212
|
-
|
60
|
+
return undefined;
|
61
|
+
}
|
62
|
+
/**
|
63
|
+
* Retrieves the authenticated user phone number for the active embedded wallet.
|
64
|
+
* @param options - The arguments for retrieving the authenticated user.
|
65
|
+
* @returns The authenticated user phone number if authenticated with phone number, otherwise undefined.
|
66
|
+
* @example
|
67
|
+
* ```ts
|
68
|
+
* import { getUserPhoneNumber } from "thirdweb/wallets/embedded";
|
69
|
+
*
|
70
|
+
* const phoneNumber = await getUserPhoneNumber({ client });
|
71
|
+
* console.log(phoneNumber);
|
72
|
+
* ```
|
73
|
+
* @wallet
|
74
|
+
*/
|
75
|
+
export async function getUserPhoneNumber(options) {
|
76
|
+
const user = await getAuthenticatedUser(options);
|
77
|
+
if (user && "phoneNumber" in user.authDetails) {
|
78
|
+
return user.authDetails.phoneNumber;
|
213
79
|
}
|
80
|
+
return undefined;
|
81
|
+
}
|
82
|
+
/**
|
83
|
+
* Pre-authenticates the user based on the provided authentication strategy.
|
84
|
+
* @param args - The arguments required for pre-authentication.
|
85
|
+
* @returns A promise that resolves to the pre-authentication result.
|
86
|
+
* @throws An error if the provided authentication strategy doesn't require pre-authentication.
|
87
|
+
* @example
|
88
|
+
* ```ts
|
89
|
+
* import { preAuthenticate } from "thirdweb/wallets/in-app";
|
90
|
+
*
|
91
|
+
* const result = await preAuthenticate({
|
92
|
+
* client,
|
93
|
+
* strategy: "email",
|
94
|
+
* email: "example@example.org",
|
95
|
+
* });
|
96
|
+
* ```
|
97
|
+
* @wallet
|
98
|
+
*/
|
99
|
+
export async function preAuthenticate(args) {
|
100
|
+
const connector = await getInAppWalletConnector(args.client);
|
101
|
+
return connector.preAuthenticate(args);
|
102
|
+
}
|
103
|
+
/**
|
104
|
+
* Authenticates the user based on the provided authentication arguments.
|
105
|
+
* @param args - The authentication arguments.
|
106
|
+
* @returns A promise that resolves to the authentication result.
|
107
|
+
* @example
|
108
|
+
* ```ts
|
109
|
+
* import { authenticate } from "thirdweb/wallets/in-app";
|
110
|
+
*
|
111
|
+
* const result = await authenticate({
|
112
|
+
* client,
|
113
|
+
* strategy: "email",
|
114
|
+
* email: "example@example.org",
|
115
|
+
* verificationCode: "123456",
|
116
|
+
* });
|
117
|
+
* ```
|
118
|
+
* @wallet
|
119
|
+
*/
|
120
|
+
export async function authenticate(args) {
|
121
|
+
const connector = await getInAppWalletConnector(args.client);
|
122
|
+
return connector.authenticate(args);
|
214
123
|
}
|
215
124
|
//# sourceMappingURL=index.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../src/wallets/in-app/web/lib/auth/index.ts"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../src/wallets/in-app/web/lib/auth/index.ts"],"names":[],"mappings":"AACA,OAAO,EAKL,gBAAgB,GACjB,MAAM,sCAAsC,CAAC;AAC9C,OAAO,EAAE,+BAA+B,EAAE,MAAM,qCAAqC,CAAC;AAEtF,sEAAsE;AACtE,iEAAiE;AAEjE;;GAEG;AACH,KAAK,UAAU,uBAAuB,CAAC,MAAsB;IAC3D,OAAO,+BAA+B,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;QAC9D,MAAM,EAAE,iBAAiB,EAAE,GAAG,MAAM,MAAM,CAAC,qBAAqB,CAAC,CAAC;QAClE,OAAO,IAAI,iBAAiB,CAAC;YAC3B,MAAM,EAAE,MAAM;SACf,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,OAAmC;IAEnC,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;IAC3B,MAAM,SAAS,GAAG,MAAM,uBAAuB,CAAC,MAAM,CAAC,CAAC;IACxD,MAAM,IAAI,GAAG,MAAM,SAAS,CAAC,OAAO,EAAE,CAAC;IACvC,QAAQ,IAAI,CAAC,MAAM,EAAE,CAAC;QACpB,KAAK,gBAAgB,CAAC,4BAA4B,CAAC,CAAC,CAAC;YACnD,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,OAAmC;IACpE,MAAM,IAAI,GAAG,MAAM,oBAAoB,CAAC,OAAO,CAAC,CAAC;IACjD,IAAI,IAAI,IAAI,OAAO,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;QACxC,OAAO,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;IAChC,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,OAAmC;IAC1E,MAAM,IAAI,GAAG,MAAM,oBAAoB,CAAC,OAAO,CAAC,CAAC;IACjD,IAAI,IAAI,IAAI,aAAa,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;QAC9C,OAAO,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC;IACtC,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,IAAqB;IACzD,MAAM,SAAS,GAAG,MAAM,uBAAuB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC7D,OAAO,SAAS,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;AACzC,CAAC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,IAAkB;IAElB,MAAM,SAAS,GAAG,MAAM,uBAAuB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC7D,OAAO,SAAS,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;AACtC,CAAC"}
|
@@ -1,8 +1,7 @@
|
|
1
1
|
import { getThirdwebBaseUrl } from "../../../../utils/domains.js";
|
2
|
-
import { oauthStrategyToAuthProvider } from "../../core/authentication/
|
3
|
-
import { UserWalletStatus, } from "../../core/authentication/type.js";
|
2
|
+
import { UserWalletStatus, oauthStrategyToAuthProvider, } from "../../core/authentication/type.js";
|
4
3
|
import { InAppWalletIframeCommunicator } from "../utils/iFrameCommunication/InAppWalletIframeCommunicator.js";
|
5
|
-
import { Auth } from "./auth/
|
4
|
+
import { Auth } from "./auth/iframe-auth.js";
|
6
5
|
import { loginWithPasskey, registerPasskey } from "./auth/passkeys.js";
|
7
6
|
import { IFrameWallet } from "./in-app-account.js";
|
8
7
|
/**
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"web-connector.js","sourceRoot":"","sources":["../../../../../../src/wallets/in-app/web/lib/web-connector.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAElE,OAAO,
|
1
|
+
{"version":3,"file":"web-connector.js","sourceRoot":"","sources":["../../../../../../src/wallets/in-app/web/lib/web-connector.ts"],"names":[],"mappings":"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"}
|
@@ -2,7 +2,7 @@ import { hasSmartAccount } from "../../react/web/utils/isSmartWallet.js";
|
|
2
2
|
import { computedStore } from "../../reactive/computedStore.js";
|
3
3
|
import { effect } from "../../reactive/effect.js";
|
4
4
|
import { createStore } from "../../reactive/store.js";
|
5
|
-
import { smartWallet } from "../
|
5
|
+
import { smartWallet } from "../smart/smart-wallet.js";
|
6
6
|
import { deleteConnectParamsFromStorage } from "../storage/walletStorage.js";
|
7
7
|
const CONNECTED_WALLET_IDS = "thirdweb:connected-wallet-ids";
|
8
8
|
const LAST_ACTIVE_EOA_ID = "thirdweb:active-wallet-id";
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/wallets/manager/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,wCAAwC,CAAC;AACzE,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAChE,OAAO,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/wallets/manager/index.ts"],"names":[],"mappings":"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"}
|
@@ -0,0 +1,169 @@
|
|
1
|
+
// TODO: figure out how to define the type without tuple args type and using function overloads
|
2
|
+
import { trackConnect } from "../../analytics/track.js";
|
3
|
+
import { coinbaseWalletSDK } from "../coinbase/coinbase-wallet.js";
|
4
|
+
import { getCoinbaseMobileProvider } from "../coinbase/coinbaseMobileSDK.js";
|
5
|
+
import { COINBASE } from "../constants.js";
|
6
|
+
import { smartWallet } from "../smart/smart-wallet.js";
|
7
|
+
import { createWalletEmitter } from "../wallet-emitter.js";
|
8
|
+
/**
|
9
|
+
* Creates a wallet based on the provided ID and arguments.
|
10
|
+
* @param args - The arguments for creating the wallet.
|
11
|
+
* @returns - The created wallet.
|
12
|
+
* @example
|
13
|
+
* ```ts
|
14
|
+
* import { createWallet } from "thirdweb/wallets";
|
15
|
+
*
|
16
|
+
* const metamaskWallet = createWallet("io.metamask");
|
17
|
+
*
|
18
|
+
* const account = await metamaskWallet.connect({
|
19
|
+
* client,
|
20
|
+
* });
|
21
|
+
* ```
|
22
|
+
* @wallet
|
23
|
+
*/
|
24
|
+
export function createWallet(...args) {
|
25
|
+
const [id, creationOptions] = args;
|
26
|
+
switch (id) {
|
27
|
+
/**
|
28
|
+
* SMART WALLET
|
29
|
+
*/
|
30
|
+
case "smart": {
|
31
|
+
// same as web
|
32
|
+
return smartWallet(creationOptions);
|
33
|
+
}
|
34
|
+
/**
|
35
|
+
* IN-APP WALLET
|
36
|
+
*/
|
37
|
+
case "embedded":
|
38
|
+
case "inApp": {
|
39
|
+
// TODO pass RN connector
|
40
|
+
throw new Error("TODO");
|
41
|
+
// return inAppWallet(
|
42
|
+
// creationOptions as CreateWalletArgs<"inApp">[1],
|
43
|
+
// ) as Wallet<ID>;
|
44
|
+
}
|
45
|
+
/**
|
46
|
+
* COINBASE WALLET VIA SDK
|
47
|
+
* -> if no injected coinbase found, we'll use the coinbase SDK
|
48
|
+
*/
|
49
|
+
case COINBASE: {
|
50
|
+
const options = creationOptions;
|
51
|
+
return coinbaseWalletSDK({
|
52
|
+
createOptions: options,
|
53
|
+
providerFactory: () => getCoinbaseMobileProvider(options),
|
54
|
+
});
|
55
|
+
}
|
56
|
+
/**
|
57
|
+
* WALLET CONNECT AND INJECTED WALLETS + walletConnect standalone
|
58
|
+
* TODO extract into a core + inject storage and link open callback
|
59
|
+
*/
|
60
|
+
default: {
|
61
|
+
const emitter = createWalletEmitter();
|
62
|
+
let account = undefined;
|
63
|
+
let chain = undefined;
|
64
|
+
const unsubscribeChain = emitter.subscribe("chainChanged", (newChain) => {
|
65
|
+
chain = newChain;
|
66
|
+
});
|
67
|
+
function reset() {
|
68
|
+
account = undefined;
|
69
|
+
chain = undefined;
|
70
|
+
}
|
71
|
+
let handleDisconnect = async () => { };
|
72
|
+
const unsubscribeDisconnect = emitter.subscribe("disconnect", () => {
|
73
|
+
reset();
|
74
|
+
unsubscribeChain();
|
75
|
+
unsubscribeDisconnect();
|
76
|
+
});
|
77
|
+
emitter.subscribe("accountChanged", (_account) => {
|
78
|
+
account = _account;
|
79
|
+
});
|
80
|
+
let handleSwitchChain = async () => {
|
81
|
+
throw new Error("Not implemented yet");
|
82
|
+
};
|
83
|
+
const wallet = {
|
84
|
+
id,
|
85
|
+
subscribe: emitter.subscribe,
|
86
|
+
getConfig: () => args[1],
|
87
|
+
getChain: () => chain,
|
88
|
+
getAccount: () => account,
|
89
|
+
autoConnect: async (options) => {
|
90
|
+
if (options && "client" in options) {
|
91
|
+
const { autoConnectWC } = await import("../wallet-connect/controller.js");
|
92
|
+
const [connectedAccount, connectedChain, doDisconnect, doSwitchChain,] = await autoConnectWC(options, emitter, wallet.id);
|
93
|
+
// set the states
|
94
|
+
account = connectedAccount;
|
95
|
+
chain = connectedChain;
|
96
|
+
handleDisconnect = doDisconnect;
|
97
|
+
handleSwitchChain = doSwitchChain;
|
98
|
+
trackConnect({
|
99
|
+
client: options.client,
|
100
|
+
walletType: id,
|
101
|
+
walletAddress: account.address,
|
102
|
+
});
|
103
|
+
// return account
|
104
|
+
return account;
|
105
|
+
}
|
106
|
+
throw new Error("Failed to auto connect");
|
107
|
+
},
|
108
|
+
connect: async (options) => {
|
109
|
+
async function wcConnect(wcOptions) {
|
110
|
+
const { connectWC } = await import("../wallet-connect/controller.js");
|
111
|
+
const [connectedAccount, connectedChain, doDisconnect, doSwitchChain,] = await connectWC(wcOptions, emitter, wallet.id);
|
112
|
+
// set the states
|
113
|
+
account = connectedAccount;
|
114
|
+
chain = connectedChain;
|
115
|
+
handleDisconnect = doDisconnect;
|
116
|
+
handleSwitchChain = doSwitchChain;
|
117
|
+
trackConnect({
|
118
|
+
client: wcOptions.client,
|
119
|
+
walletType: id,
|
120
|
+
walletAddress: account.address,
|
121
|
+
});
|
122
|
+
return account;
|
123
|
+
}
|
124
|
+
if (id === "walletConnect") {
|
125
|
+
const { client, chain: _chain, ...walletConnectOptions } = options;
|
126
|
+
return wcConnect({
|
127
|
+
client,
|
128
|
+
chain: _chain,
|
129
|
+
walletConnect: {
|
130
|
+
...walletConnectOptions,
|
131
|
+
},
|
132
|
+
});
|
133
|
+
}
|
134
|
+
if (options && "client" in options) {
|
135
|
+
return wcConnect(options);
|
136
|
+
}
|
137
|
+
throw new Error("Failed to connect");
|
138
|
+
},
|
139
|
+
// these get overridden in connect and autoConnect
|
140
|
+
disconnect: async () => {
|
141
|
+
reset();
|
142
|
+
await handleDisconnect();
|
143
|
+
},
|
144
|
+
switchChain: (c) => handleSwitchChain(c),
|
145
|
+
};
|
146
|
+
return wallet;
|
147
|
+
}
|
148
|
+
}
|
149
|
+
}
|
150
|
+
/**
|
151
|
+
* Creates a wallet that allows connecting to any wallet that supports the WalletConnect protocol.
|
152
|
+
* @returns The created smart wallet.
|
153
|
+
* @example
|
154
|
+
* ```ts
|
155
|
+
* import { walletConnect } from "thirdweb/wallets";
|
156
|
+
*
|
157
|
+
* const wallet = walletConnect();
|
158
|
+
*
|
159
|
+
* const account = await wallet.connect({
|
160
|
+
* client
|
161
|
+
* });
|
162
|
+
* ```
|
163
|
+
* @wallet
|
164
|
+
*/
|
165
|
+
export function walletConnect() {
|
166
|
+
return createWallet("walletConnect");
|
167
|
+
}
|
168
|
+
// TODO in-app wallet
|
169
|
+
//# sourceMappingURL=create-wallet.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"create-wallet.js","sourceRoot":"","sources":["../../../../src/wallets/native/create-wallet.ts"],"names":[],"mappings":"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"}
|